只有最后一行被保存在c ++

时间:2016-01-11 21:40:46

标签: c++ file-io

我的代码只保存最后一行,例如,如果我输入1 abc然后按Enter键然后键入2 def然后只有2 def保存在txt文件中。 这是我的代码: -

int main()
{
 ofstream rankings;
 rankings.open("rankings.txt");
 cout << "Enter rank of the Student <space> followed by Name\n"
  "Press Ctrl+Z to quit"<< endl;
 int rank;
 string name;
 while (cin >> rank >> name);
 {
  rankings << rank << ' ' << name << endl;

 }
 rankings.close();


 return 0;
}

1 个答案:

答案 0 :(得分:4)

while循环后,您有一个多余的分号:

while (cin >> rank >> name);
                        // ^

这只会在代码中打开一个新块,并为您输入最少的值。

修改你的循环到

while (cin >> rank >> name) {
  rankings << rank << ' ' << name << endl;
}