我的程序中有一个小的对齐问题。
#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;
}
在我得到的输出中,月份的名称不正确。
Sl. No: Month Name
1 January Abhilash
2 Februaury Anandan
3 March Abhilash
4 April Anandan
什么似乎是问题?
答案 0 :(得分: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;
//...
答案 1 :(得分:0)
当你想使用setw时,你必须从输出字符串的末尾开始计算int等。所以当你说
时 cout << setw(15) << "January";
它将在中间格式化8个空格,因为1月份是7个字符。所以在你的例子中,你想拥有
cout << setw(23) << "January";
这显然取决于你是否将第一个输出'1'放在同一个地方。
答案 2 :(得分:0)
哦,你需要在&#34;月&#34;
前面使用间距 " month"
不是
"month"
结果将如下所示
Month
January
您可能需要调整使用的间距。