У меня есть следующий фрагмент кода:
time_t data1 = time(0)+86400;
struct tm * data_emprestimo = localtime( & data1 );
cout << "Hoje: " << data_emprestimo->tm_mday << '/' << (data_emprestimo->tm_mon + 1) << '/' << (data_emprestimo->tm_year + 1900) << endl;
Это работает хорошо.
Но мне интересно, какой тип я должен возвращать в функции, чтобы получить какой-либо ответ и поставить переменную: struct tm? Просто тм? Массив? Строка?
Я пробовал что-то вроде этого:
struct tm retornaData(int segundosAdd);
...
...
struct tm retornaData(int segundosAdd){
return data_emprestimo;
}
но это не сработало.
И я уже много гуглил!
struct tm * data_emprestimo
объявляет указатель на структуру, поэтому для возврата самой структуры в качестве значения необходимо разыменовать указатель, return *data_emprestimo;
,
Мне кажется, что вы хотите написать функцию, которая возвращает строковое представление даты.
В c ++ std :: string будет естественным типом возврата для строковых данных.
Более подход в стиле C может предложить передать char * в качестве буфера, в который вы хотите печатать дату — в общем случае std :: string считается более чистым и надежным подходом.