我发现有两种方法可以为iostream设置setf()/ unsetf(),也就是说
(1)ios和(2)ios_base.
(1)ios和(2)ios_base.
#include <iostream> using namespace std; int main() { cout.width(5); cout << 123 << endl; cout.setf(ios::adjustfield); // (1) using ios:: cout << 123 << endl; cout.width(5); cout << 456 << endl; cout.setf(ios_base::adjustfield); // (2) using ios_base:: cout << 456 << endl; return 0; }
当我想改变ostream的格式时,它们的区别是什么;
您在更改格式时通常使用哪种方法?
解决方法
常量实际上是在std :: ios_base中定义的,但是std :: ios(实际上是std :: basic_ios< cT,Traits>)是从std :: ios_base派生的.因此,可以使用std :: ios访问std :: ios_base中定义的所有成员.
类std :: ios_base包含完全独立于流的模板参数的所有成员. std :: basic_ios< cT,Traits>派生自std :: ios_base并定义输入和输出流之间通用的所有成员.