C++流输出不正确缩进
我把名字和成绩输出到一个文件,它需要以一种特定的格式 我目前有此代码要写入文件C++流输出不正确缩进,c++,file-io,ofstream,C++,File Io,Ofstream,我把名字和成绩输出到一个文件,它需要以一种特定的格式 我目前有此代码要写入文件 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" <<
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";
}
}
}
正如你所看到的,缩进是错误的,我需要它全部对齐。
我该如何解决这个问题?您想将名字和姓氏连接起来,并为组合指定一个宽度,如下所示:
b << std::setw(30) << (a[i].first + " " + a[i].last) << "\t" << a[i].avg;
那是因为第二个名字更长。简单地增加固定数量的标签并不能让它排成一行。您应该使用不同的输出格式,例如CSV,或者使列的宽度固定,并使用空格填充。
b << std::setw(30) << (a[i].first + " " + a[i].last) << "\t" << a[i].avg;