Используйте известный размер целого числа с scanf()
, а затем преобразуйте результат в time_t
:
#include <stdio.h>
#include <time.h>
int main()
{
long long llv;
time_t t;
scanf("%lld", &llv);
t = llv;
printf("%lld\n", (long long)t);
return 0;
}
В этом примере это, кажется, не слишком дорого для вас, но если вы хотите передать переменную t
некоторым функциям манипуляции со временем, тогда у вас будет правильный тип для работы.
Если вы посмотрите на связанный URL для (расширенной версии POSIX) scanf()
, вы увидите, что там нет упоминания типа time_t
. Таким образом, любой механизм для чтения значений time_t
с помощью scanf()
должен быть несколько меньше, чем прямой. То же самое, что печатает time_t
значений, также несколько меньше, чем прямое.