C++ 如何使用iomanip使多个out字符串一起占据一定的宽度?

C++ 如何使用iomanip使多个out字符串一起占据一定的宽度?,c++,C++,我知道setw(n)只适用于它后面的字符串。比如: cout<<setw(10)<<"A"<<" String"<<endl; A前面有9个空格 但我需要这样的命令: cout<<[something here to set the space for all coming things]<<"A"<<" String"<<endl; cout << setw(10) <<

我知道setw(n)只适用于它后面的字符串。比如:

cout<<setw(10)<<"A"<<" String"<<endl;
A前面有9个空格

但我需要这样的命令:

cout<<[something here to set the space for all coming things]<<"A"<<" String"<<endl;
cout << setw(10) << ("A"s + "string") << "\n";
“A”和“String”一起使用10个字符,在A之前只有2个空格


有办法吗?谢谢你的帮助,谢谢

不直接。
setw()
操纵器仅适用于下一个输出

那么,您必须做的是将希望具有一定宽度的内容组合成一个字符串,然后输出该字符串。例如:

{
  ostringstream ss;
  ss << "X = " << X << ".";
  cout << setw(15) << ss.str() << "\n";
}
{
ostringstream ss;

ss显而易见的可能性是创建一个包含两个字段的字符串,然后为组合的整体设置宽度。给定字符串文本,显而易见的方法是将每个字符串转换为字符串,然后连接字符串

假设使用最新的编译器,您可以非常轻松地执行以下操作:

cout<<[something here to set the space for all coming things]<<"A"<<" String"<<endl;
cout << setw(10) << ("A"s + "string") << "\n";

cout To user1034749:我尝试了cout.width(10),但结果与setw一样。
cout << setw(10) << ("A"s + "string") << "\n";
int a = 1, b = 100;

cout << setw(10) << (to_string(a) + to_string(b));