这是我正在编写的程序的不完整部分。总而言之,该程序从输入文件中获取信息(名称和 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
output:
Vagts,Morgan 100100 100100 100100 100100 100100 (300,000 more times)
Update:
do
{
while (getline (infile, line))
{
istringstream iss(line);
iss >> name >> Id;
cout<< name << Id;
hworkgrade = CalHworkGrade(grade1, infile);
printRecord(name, Id, outfile);
}
}
while(!infile.eof());
最佳答案
使用getline(infile,"字符串变量")
有时使用 get line 可能会在读取下一行时导致错误,因为有时需要“结束行”作为下一个语句来读取,因此在 getline 语句之前或之后使用 cin.ignore();它最适合您。
关于c++ - 移动到文件中的下一行 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42337950/