如C标准的[ostream.inserters.character]部分所述,在将char或字符串插入流后,流的宽度设置为0:
template<class traits> basic_ostream<char,traits>& operator<<(basic_ostream<char,traits>& out,const unsigned char* s); Do lots of sensible and expected things... Calls width(0).
为什么C标准规定了对宽度(0)的调用?
更改流宽度而不将其重置为原始值的合理性是什么?
(据我所知,流插入运算符保留了流的所有其他属性.)