我正在用C++寫一個簡單的日誌記錄類用於學習目的。我的代碼包含一個返回當前日期字符串的函數。但是,每當調用「localtime」時,我都會收到編譯器錯誤。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。 –