我正在为学习目的编写一个简单的C++日志类。我的代码包含一个返回当天日期字符串的函数。但是,每当调用“localtime”函数时,我都会收到编译器错误。
std::string get_date_string(time_t *time) {
struct tm *now = localtime(time);
std::string date = std::to_string(now->tm_mday) + std::to_string(now->tm_mon) + std::to_string(now->tm_year);
return date;
}
我尝试使用#define _CRT_SECURE_NO_WARNINGS
,但它没有起作用,相同的错误出现了。我还尝试将_CRT_SECURE_NO_WARNINGS
放在项目属性中的预处理器定义中。这导致了一个未解决的外部错误。
有人有什么想法吗?
localtime
可能是危险的,因为它返回一个指向它拥有的内存区域的指针,所以如果你多次调用它,你需要确保每次都复制结构体。另外,顺便说一下,如果你得到了"2112016"这样的字符串,你不知道它是21/1/2016还是2/11/2016。 - Klitos Kyriacou