使用`std :: ios_base :: width()`和`std :: setw()`有什么意义?

时间:2013-06-28 16:02:45

标签: c++ c++11

为什么我会使用一个而不是另一个?它们似乎都只影响输出的下一个字段。故意有两种方法来做同样的事情是什么意思?还是一个事后的想法?

1 个答案:

答案 0 :(得分:1)

std::ios_base::width()ios_base的成员(好的,很明显),这通常不是用户搞砸的类 - 用户的预期接口是*流类。 std::setw()在该级别工作(最终无论如何都会调用std::ios_base::width())。这使编码人员能够编写更清晰的代码(无论如何,我的意见):

cout << setw(10) << someint;

而不是:

cout.width(10);
cout << someint;