время t — Какая функция C ++ должна вернуть?

У меня есть следующий фрагмент кода:

 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;
}

но это не сработало.

И я уже много гуглил!

0

Решение

struct tm * data_emprestimo

объявляет указатель на структуру, поэтому для возврата самой структуры в качестве значения необходимо разыменовать указатель, return *data_emprestimo;,

0

Другие решения

Мне кажется, что вы хотите написать функцию, которая возвращает строковое представление даты.

В c ++ std :: string будет естественным типом возврата для строковых данных.
Более подход в стиле C может предложить передать char * в качестве буфера, в который вы хотите печатать дату — в общем случае std :: string считается более чистым и надежным подходом.

0

По вопросам рекламы [email protected]