移动到文件C ++中的下一行

时间:2017-02-20 06:37:02

标签: c++ file file-io printing newline

这是我写的一个程序的不完整部分。总而言之,程序从输入文件(名称和ID,然后是一系列数字)获取信息进行一些数学运算,然后在输出文件中打印答案。现在程序打印出名称和ID,然后一遍又一遍地打印数字。我希望它移动到下一行,打印名称和ID并重复,直到文件结束

教授说我应该使用getline,但这对我没有任何意义

do
{
  infile >> name >> Id;
  cout<< name << Id << std::endl;
  hworkgrade = CalHworkGrade(grade1, infile);
  printRecord(name, Id, outfile);
}
while(!infile.eof());

输入:

Morgan 12388671 100 100 100 
John 67894 100 100 100 

输出:

Vagts,Morgan
100100
100100
100100
100100
100100
(300,000 more times)

更新:

do
{
  while (getline (infile, line))
  {
  istringstream iss(line);
  iss >> name >> Id;
  cout<< name << Id;
  hworkgrade = CalHworkGrade(grade1, infile);
  printRecord(name, Id, outfile);
  }
}

而(infile.eof()!);

1 个答案:

答案 0 :(得分:2)

使用 getline(infile,&#34;字符串变量&#34;)

有时使用get line可能会在读取下一行时导致错误,因为它有时需要&#34; end line&#34;作为下一个要阅读的陈述,请在getline语句之前或之后使用 cin.ignore(); ,具体取决于它最适合您的位置。