setw дает дополнительное пространство после первого цикла
Как мне остановить 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
1 ответ
Вы можете сбросить setw
перед окончанием, что-то вроде:
cout << setw(0) << endl;