我的目标是使3列整数对齐,如下所示:
3 109 136 223
4 95 237 230
5 200 76 153
使用我的代码,这是我得到的输出:
我使用for循环遍历向量并打印数字。
这是我的打印这些数字的for循环:
for (int i = 0; i < v.size(); i++)
{
cout << (i + 1);
cout.setf(ios::left);
cout.width(6);
cout << " " << v[i].firstColumn;
cout.width(8);
cout << " " << v[i].secondColumn;
cout.unsetf(ios::left);
cout << endl;
}
我怎样才能使所有整数很好地对齐?似乎较高的数字会使列偏移(IE从9变为10)。有办法解决这个问题吗?
答案 0 :(得分:0)
您的代码与您的目标不符。但是通常,您需要为每个列设置一个width
,包括保存i + 1
值的列,例如:
for (int i = 0; i < v.size(); i++)
{
fmtflags oldflags = cout.setf(ios::left);
cout << std::setw(8) << i + 1;
cout << std::setw(8) << v[i].firstColumn;
cout << set::setw(8) << v[i].secondColumn;
...
cout.flags(oldflags);
cout << endl;
}