【发布时间】:2017-12-03 18:38:52
【问题描述】:
如何阻止 setw() 在 endl 之后创建空间?我在此处显示列标题的第一个循环工作正常,但在我的第二个循环(显示数据)中,在显示第一行之前我得到了一个很大的空白区域。我已经尝试清除缓冲区并放入额外的“endl”。
for (int i = 0; i < airports.size(); i++)
{
cout << airports[i] <<setw(10);
}
cout << endl;
for (int i = 0; i < numAirprts; i++)
{
for (int j = 0; j < numAirprts; j++)
{
cout << i;
cout << setw(4);
for (int k = 0; k < milesCost; k++)
{
cout << costArray[i][j][k] << setw(2) <<" ";
}
}
cout << endl;
}
这是一个输出示例:
DEN LAX LV PHX SFA SFO SJC SLC
0 -1 -1 0 844 69 0 -1 -1 0 -1 -1 01026 72 0 -1 -1 0 -1 -1 0 -1 -1
1 -1 -1 1 -1 -1 1 231 23 1 -1 -1 1 -1 -1 1 344 39 1 -1 -1 1 581 57
2 -1 -1 2 -1 -1 2 -1 -1 2 256 21 2 -1 -1 2 -1 -1 2 -1 -1 2 362 29
3 586 65 3 -1 -1 3 -1 -1 3 -1 -1 3 -1 -1 3 -1 -1 3 -1 -1 3 -1 -1
4 -1 -1 4 -1 -1 4 -1 -1 4 -1 -1 4 -1 -1 4 679 67 4 -1 -1 4 700 59
5 -1 -1 5 -1 -1 5 420 39 5 -1 -1 5 -1 -1 5 -1 -1 5 -1 -1 5 605 19
6 -1 -1 6 -1 -1 6 -1 -1 6 -1 -1 6 -1 -1 6 51 19 6 -1 -1 6 -1 -1
7 379 49 7 -1 -1 7 -1 -1 7 -1 -1 7 -1 -1 7 -1 -1 7 585 29 7 -1 -1
【问题讨论】:
-
寻求调试帮助的问题(“为什么这段代码不起作用?”)必须在问题本身中包含重现问题所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请阅读如何创建minimal reproducible example。