я решение проблемы SPOJ, где ток штамп времени sqaured и затем деленный на 400000007, а остаток превращает в Датах время ниже метод я использовал ..преобразовать длинный номер, дату, время в C
remainder = result%4000000007 ;
printf("%ul\n",remainder);
//convert the timestamp into date , time
dt = localtime(&remainder);
// use any strftime format spec here
// strftime(b, sizeof(b), "%m%d%H%M%y", dt);
// fprintf(stdout, "%s", b);
// printf("%s\n",asctime(localtime(&remainder)));
ltime = (time_t)remainder;
printf("%s\n",asctime(dt));
printf("%s\n",ctime(<ime));
Ошибка показана ошибка сегментации, в asctime
, также ltime
является time_t переменной, «B» представляет собой буфер, dt
является структура тм *, а также я попытался преобразовать остаток в time_t
переменной, но до сих пор вмятина работа , Кроме того, Прокомментированный код показывает мои попытки. Используя отладчик, я обнаружил, что asctime возвращает null.
В чем проблема?
Остаток и результат как минимум длинный (64-битный int)? Кроме того, все предупреждения компилятора с включенным/wAll? –
Да, они unsigned long long – Subbu
@MichaelDorgan: но я не уверен, что они 64-разрядные – Subbu