спасибо за чтение, это простой вопрос, но … я удивлен.
Мой код:
/* 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»?
Где вы ожидаете свой выход? Вы ничего не выводите на консоль во второй раз.
Если вы поместите эту строку кода в конце вашего образца:
std::cout << myString << endl;
Тогда общий вывод вашей программы будет (например):
14
141417
Это имеет смысл, как вы добавляете oss
дважды к вашей строке, а во второй раз она не была очищена, равно как и ваша строка.
Так что ваша ценность mhour
растет, как вы ожидаете.
Других решений пока нет …