операции time_t (mhour) (+ / — …)

спасибо за чтение, это простой вопрос, но … я удивлен.

Мой код:

/* GET THE TIME */

time_t theTime = time(0);
struct tm *aTime = localtime(&theTime);
int mhour = aTime->tm_hour;

ostringstream oss;
string myString = " ";

oss << mhour;
myString += oss.str(); // OKAY, OUTPUT Correct

std::cout << myString << endl;

// But if i replace and execute this :

oss << (mhour + 3);
myString += oss.str();// OUTPUT IS EMPTY ! Why ? How can i add +, -, * on "mhour" ?

Зачем ? Как я могу добавить +, -, * на «Mhour»?

0

Решение

Где вы ожидаете свой выход? Вы ничего не выводите на консоль во второй раз.

Если вы поместите эту строку кода в конце вашего образца:

std::cout << myString << endl;

Тогда общий вывод вашей программы будет (например):

14
141417

Это имеет смысл, как вы добавляете oss дважды к вашей строке, а во второй раз она не была очищена, равно как и ваша строка.

Так что ваша ценность mhour растет, как вы ожидаете.

0

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

Других решений пока нет …

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