这是我写的一个程序的不完整部分。总而言之,程序从输入文件(名称和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()!);
答案 0 :(得分:2)
使用 getline(infile,&#34;字符串变量&#34;)
有时使用get line可能会在读取下一行时导致错误,因为它有时需要&#34; end line&#34;作为下一个要阅读的陈述,请在getline语句之前或之后使用 cin.ignore(); ,具体取决于它最适合您的位置。