time_t (mhour) operations (+ / - ...)

time_t (mhour) operations (+ / - ...)

本文关键字:operations mhour time      更新时间:2023-10-16

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

我的代码是:

/* 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价值正在如您所料地增加。