感谢您的阅读,这是一个简单的问题,但是......我很惊讶。
我的代码是:
/* 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 :(得分:0)
您对输出的期望是什么?第二次不打印任何东西到控制台。
如果您将这行代码放在样本的末尾:
std::cout << myString << endl;
然后程序的总输出将是(例如):
14
141417
这是有道理的,因为你在字符串中添加oss
两次,第二次没有清除,也没有你的字符串。
因此,mhour
的价值正在按预期增加。