localtime返回null。为什么? (我正在使用Visual C ++ 2008)
struct tm *tb;
time_t lDate;
time(&lDate);
tb = localtime(&lDate); // tb is null everytime I try this!
答案 0 :(得分:1)
这是您的确切代码吗?我刚刚编译了这个程序,它工作正常:
#include <stdio.h>
#include <time.h>
int main(int argc, char **argv)
{
struct tm *tb;
time_t lDate;
time(&lDate);
if (lDate == -1) {
perror("time");
return 1;
}
tb = localtime(&lDate);
if (tb == NULL) {
fprintf(stderr, "localtime failed\n");
return 1;
}
printf("Good\n");
return 0;
}
答案 1 :(得分:1)
#include <time.h>
#include <stdio.h>
int main(void)
{
// get the current time
time_t now = time(0);
struct tm* theTime = localtime(&now);
int t=(int)theTime;
printf("%d",t);
getch();
return 0;
}
它有效
答案 2 :(得分:1)
在项目中定义预处理器 _USE_32BIT_TIME_T ,然后重试。祝你好运:)
答案 3 :(得分:0)
您在评论中发布的代码可以正常工作,直到您转到if语句。我不确定你在这里尝试做什么,但你;
if (pArea);
几乎肯定不应该在那里(很难说,因为它的格式非常糟糕,因为你把它放在评论中)。你也一直都是0,那是你打算做的吗?