Я пишу простой класс ведения журнала на С++ для учебных целей. Мой код содержит функцию, которая возвращает строку сегодняшней даты. Однако я получаю сообщение об ошибке компилятора всякий раз, когда вызывается "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. - person Klitos Kyriacou   schedule 26.06.2016