gpt4 book ai didi

c++ - 如何对齐显示的数据以使其看起来像表格?

转载 作者:行者123 更新时间:2023-11-30 02:29:41 26 4
gpt4 key购买 nike

我目前正在学习 C++。我要将文件中的数据读入下表。我能够读取其中的数据,但在表格中它不喜欢这样:

StdID A1 A2 A3


030302 9 5 6

而是作为

030302

9

5

6

etc.

如何将其正确格式化到表格中?我试过 setw 但它没有解决问题。

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

int main()
{
int StdID=0, A1=0, A2=0, A3=0;

ifstream fin;
fin.open("data.txt");
if(!fin)
cout << "The file does not exist.";
else{
cout << "Std-ID A1 A2 A3 Min Max Avg\n";
cout << " ---------------------------------------------------\n";
while (!fin.eof())
{
fin >> StdID >> A1 >> A2 >> A3;
cout << setw(10) << StdID << endl;
cout << setw(10) << A1 << endl;
cout << setw(10) << A2 << endl;
cout << setw(10) << A3 << endl;
}
}



return 0;
}

最佳答案

每次显示一个变量时,您也会显示一个新行(通过使用每个 << endl; )。

这应该有效:

while (!fin.eof())
{
fin >> StdID >> A1 >> A2 >> A3;
cout << setw(10) << StdID << setw(10) << A1 << setw(10) << A2 << setw(10) << A3 << endl;

// You may also break it down like this:
//cout << setw(10) << StdID;
//cout << setw(10) << A1;
//cout << setw(10) << A2;
//cout << setw(10) << A3 << endl; // one endl on each iteration
}

建议:你可能需要学习Why is iostream::eof inside a loop condition considered wrong .最好改用这个条件:

while (fin >> StdID >> A1 >> A2 >> A3)

编辑:

Tab 键 \t仍然可以使用字符串,与此类似:

cout << "Std-ID\t\t\tA1\t\t\tA2\t\t\tA3\t\t\tMin\t\t\tMax\t\t\tAvg\n";

另外你最好使用if (fin.is_open())检查文件是否打开成功。

关于c++ - 如何对齐显示的数据以使其看起来像表格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39321687/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com