time_t(mhour)操作(+ / - ......)

时间:2014-01-18 16:36:21

标签: c++ time int output operations

感谢您的阅读,这是一个简单的问题,但是......我很惊讶。

我的代码是:

/* 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”上添加+, - ,*?

1 个答案:

答案 0 :(得分:0)

您对输出的期望是什么?第二次不打印任何东西到控制台。

如果您将这行代码放在样本的末尾:

std::cout << myString << endl;

然后程序的总输出将是(例如):

14
141417

这是有道理的,因为你在字符串中添加oss两次,第二次没有清除,也没有你的字符串。

因此,mhour的价值正在按预期增加。