stringstream
由于我错误地认为std::setw()
这会影响每次插入的字符串流,直到我显式更改它为止,最近我创建一个问题。但是,插入后始终未设置。
// With timestruct with value of 'Oct 7 9:04 AM'
std::stringstream ss;
ss.fill('0'); ss.setf(ios::right, ios::adjustfield);
ss << setw(2) << timestruct.tm_mday;
ss << timestruct.tm_hour;
ss << timestruct.tm_min;
std::string filingTime = ss.str(); // BAD: '0794'
因此,我有很多问题:
- 为什么
setw()
这样呢? - 这样还有其他操纵器吗?
- 是否有之间的行为差异
std::ios_base::width()
和std::setw()
? - 最后,是否有在线参考清楚地记录了这种行为?我的供应商文档(MS Visual Studio 2005)似乎没有清楚地表明这一点。