C++表格对齐 - cout和iomanip

Bab*_*zzz 0 c++ cout alignment

我的程序中有一个小的对齐问题.

#include <iostream>
#include <iomanip>
using namespace std;

int main()
{
    cout << setw(5) << "Sl. No:" << setw(15) << "Month" << setw(15) << "Name" << endl << endl;
    cout << setw(5) << 1 << setw(15) << "January" << setw(15) << "Abhilash" << endl;
    cout << setw(5) << 2 << setw(15) << "Februaury" << setw(15) << "Anandan" << endl;
    cout << setw(5) << 3 << setw(15) << "March" << setw(15) << "Abhilash" << endl;
    cout << setw(5) << 4 << setw(15) << "April" << setw(15) << "Anandan" << endl;

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

在我得到的输出中,月份的名称不正确.

Sl. No:          Month           Name

    1        January       Abhilash
    2      Februaury        Anandan
    3          March       Abhilash
    4          April        Anandan
Run Code Online (Sandbox Code Playgroud)

什么似乎是问题?

jxh*_*jxh 5

字符串Sl. No:是7宽,你试图将它装入5宽的列.这将第一行推过2列.尝试将第一列宽7而不是宽5宽:

cout << setw(7) << "Sl. No:" << setw(15) << "Month" << setw(15) << "Name"
     << endl << endl;
cout << setw(7) << 1 << setw(15) << "January" << setw(15) << "Abhilash"
     << endl;
//...
Run Code Online (Sandbox Code Playgroud)