Я работаю с функцией в C ++, чтобы помочь получить целое число за месяц. Я провел некоторый поиск и нашел тот, который использует местное время, но я не хочу устанавливать его для удаления предупреждений, поэтому мне нужно localtime_s
, но когда я использую это, мой указатель больше не работает, и мне нужен кто-то, чтобы помочь мне найти то, что мне не хватает с указателем.
#define __STDC_WANT_LIB_EXT1__ 1
#include <stdio.h>
#include <Windows.h>
#include "FolderTask.h"#include <ctime> //used for getMonth
#include <string>
#include <fstream>
int getMonth()
{
struct tm newtime;
time_t now = time(0);
tm *ltm = localtime_s(&newtime,&now);
int Month = 1 + ltm->tm_mon;
return Month;
}
я получаю ошибку:
ошибка C2440: «инициализация»: невозможно преобразовать из «errno_t» в «tm *»
примечание: для преобразования целочисленного типа в тип указателя требуется
reinterpret_cast, C-стиль или функциональный стиль
Похоже, вы используете Visual C ++, поэтому localtime_s(&newtime,&now);
заполняет newtime
структура с числами, которые вы хотите. В отличие от обычного localtime
функция, localtime_s
возвращает код ошибки
Так что это фиксированная версия функции:
int getMonth()
{
struct tm newtime;
time_t now = time(0);
localtime_s(&newtime,&now);
int Month = 1 + newtime.tm_mon;
return Month;
}
Других решений пока нет …