C ++ ofstream输出没有正确缩进

时间:2015-04-22 01:04:38

标签: 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" << "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

你可以看到缩进是错误的,我需要它到所有排队。 我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

您希望连接名字和姓氏,并指定组合的宽度,如下所示:

b << std::setw(30) << (a[i].first + " " + a[i].last) << "\t" << a[i].avg;