我试图以hh:mm格式打印时间,但当时间为01:01时,它将打印为1:1。
void output(int hour, int min, char ampm){
cout << setw(2) << setfill('0') << "The time is: " << hour << ":" << min << " ";
if(ampm == 'P'){
cout << "PM";
}
else if (ampm == 'A'){
cout << "AM";
}
}据我所知,这个应该可以工作。包括我自己。你能看出它有什么问题吗?
发布于 2013-09-26 20:37:13
宽度是一个特殊的格式设置:当所有其他格式标志都保持不变时,width()将由每个输出操作符重置(好吧,您可以有用户定义的输出运算符,它们不重置width(),但这样做不会遵循正常的样式)。也就是说,您需要在应该受影响的输出之前设置宽度:
std::cout << std::setfill('0')
<< std::setw(2) << hour << ':'
<< std::setw(2) << min << ' ';发布于 2013-09-26 20:32:04
以下是正确的方法:
cout<<""The time is: ";
cout << setfill('0') <<setw(2) << hour << ":" <<setw(2) << min << " ";参考文献:-这
https://stackoverflow.com/questions/19038082
复制相似问题