【发布时间】:2015-04-22 01:04:38
【问题描述】:
我正在将姓名和成绩输出到一个文件中,它需要采用特定格式。
我目前有这段代码要写入文件
void outToFile(Student a[], ofstream& b, int c){
b << "Student Grade Summary\n";
b << "---------------------\n\n";
b << "ENGLISH CLASS\n\n";
b << "Student Name\t\t" << "Test Avg\n";
b << "------------------------------------------------\n";
for(int i = 0; i < c; ++i){
if(a[i].course == "E"){
b << a[i].first << " " << a[i].last << "\t\t" << a[i].avg << "\t";
if(a[i].avg >= 90)
b << "A\n";
else if(a[i].avg >= 80)
b << "B\n";
else if(a[i].avg >= 70)
b << "C\n";
else if(a[i].avg >= 60)
b << "D\n";
else if (a[i].avg < 60)
b << "F\n";
else
b << "\n";
}
}
}
将其写入 txt 文件
Student Grade Summary
---------------------
ENGLISH CLASS
Student Name Test Avg
------------------------------------------------
Marvin Dipwart 86.5 B
Axelrod Polinski 61.9 D
James T. Kirk 79.6 C
如您所见,缩进是错误的,我需要将其全部对齐。 我该如何解决这个问题?
【问题讨论】:
-
那是因为第二个名字更长。简单地添加固定数量的标签不会使其对齐。你真的应该使用不同的输出格式,例如CSV,或者使列固定宽度并带有空格进行填充。