我在C ++工作。我给了一个10位数的字符串(字符数组),其中可能有或没有3个破折号(最多13个字符)。是否有内置的方式使用流向右对齐它?
我如何才能正确地打印到流媒体?是否有内置函数/方法来执行此操作,还是需要在字符数组的开头填充3个空格?
我正在处理ostream是具体的,不确定是否重要。
答案 0 :(得分:30)
您需要将std::setw
与std::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;
头文件之后