右对齐C ++中的输出流

时间:2011-03-05 04:12:08

标签: c++

我在C ++工作。我给了一个10位数的字符串(字符数组),其中可能有或没有3个破折号(最多13个字符)。是否有内置的方式使用流向右对齐它?

我如何才能正确地打印到流媒体?是否有内置函数/方法来执行此操作,还是需要在字符数组的开头填充3个空格?

我正在处理ostream是具体的,不确定是否重要。

4 个答案:

答案 0 :(得分:30)

您需要将std::setwstd::right结合使用。

#include <iostream>
#include <iomanip>

int main(void)
{
   std::cout << std::right << std::setw(13) << "foobar" << std::endl;
   return 0;
}

答案 1 :(得分:7)

是。您可以使用setw()来设置宽度。默认对齐方式是右对齐的,默认填充是空格,因此这将在左侧添加空格。

stream << setw(13) << yourString

请参阅:setw()。您需要添加<iomanip>

答案 2 :(得分:6)

有关详细信息,请参阅您最喜欢的C ++(iostream)参考中的“setw”和“right”:

 cout << setw(13) << right << your_string;

答案 3 :(得分:-2)

您可以通过键入

来避免使用std ::
using namespace std;

头文件之后