cout 对齐

先左对齐,然后右对齐,最后再左对齐,为什么 这个时候还是右对齐?cout<<setiosflags(ios::left)<<setw(30)<<"dfasdfasd"<<endl;cout<<setiosflags(ios::right)<<setw(30)<<"dfasdfasd"<<endl;cout<<setiosflags(ios::left)<<setw(30)<<"dfasdfasd"<<endl;为什么第三行输出的还是右对齐?
2026年09月25日 04:29
有1个网友回答
网友(1):

这恐怕与所用的平台和编译器有关。就这三行代码在我的VC++6.0上全是左对齐,只有把第一行改成右对齐后才能是右对齐。默认是右对齐的,转为左对齐后,再转为右对齐这样的多次转换可能使有些编译器在解释上发生了混乱。转为左对齐后用取消左对齐(resetiosflags(ios::left))的办法就没有这种弊端了,很灵光!
这些操纵符或函数有些是管一行的,有些是管长久的,有些据说只管紧跟着的一个输出,着实也不好记,编译器解释上也会出些不一致的地方。