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

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

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/

相关文章:

file-io - 无论如何,在 Fortran 90 中是否有读取指定字节的数据

c++ - C 和 C++ 中的几个一元运算符

c++ - Spirit 无法将属性分配给单元素结构(或 fusion 序列)

java - 两个文件与数组的并集

c - 从 csv 文件读取并分成 C 中的变量

python - 如何在不被阻塞的情况下读取 os.pipe()?

android - 在 Android 上执行文件 I/O - 它属于哪个线程

c++ - 最近盒子的面积

c++ - 如何将单元测试添加到 Visual Studio 2012 中的 C++ 控制台程序?

C#写多行到cs文件