我最近遇到了一个问题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'
Run Code Online (Sandbox Code Playgroud)
所以,我有很多问题:
setw()这样?std::ios_base::width()和std::setw()?我试图通过设置不同字段的宽度在C++上创建一个整齐格式的表.我可以使用setw(n),做类似的事情
cout << setw(10) << x << setw(10) << y << endl;
Run Code Online (Sandbox Code Playgroud)
或更改ios_base :: width
cout.width (10);
cout << x;
cout.width (10);
cout << y << endl;
Run Code Online (Sandbox Code Playgroud)
问题是,这两种选择都不允许我设置默认的最小宽度,每次我都要向流写入内容时我必须更改它.
有没有人知道我可以做到这一点而无需无数次重复同一次呼叫?提前致谢.