在一次迭代中从 txt 文件中读取多行

Reading from multiple lines from a txt file in a single iteration

本文关键字:txt 文件 读取 迭代 一次      更新时间:2023-10-16

我现在正在使用链表,我的节点有 4 个元素(其中每个元素都是变量类型字符串(。在.txt文件中,有一组文本,其中每组有 4 行,例如:

  • 这是第一行
  • 这是第二行
  • 这是第三行
  • 这是第四行
  • '
  • '
  • 这是第五行
  • 这是第六行
  • 这是第七行
  • 这是第八行

等等等等... 我试图实现的是单次迭代中读取这四行并将它们提供给一个节点,然后让程序迭代直到没有更多的行。

因此,如果阅读上面的示例,我们的节点将留下;

节点 1.string1 = 这是第一行;

节点 1.string2 = 这是第二行;

节点 1.string3 = 这是第三行;

节点 1.string4 = 这是第四行;

在寻找在互联网上执行此操作的方法时,我找到了一种方法,您可以执行此操作并告诉"ifstream 阅读器"在下一次迭代之前执行"",但是我丢失了此页面,似乎找不到它

足够简单

while (getline(in, node.string1) && 
getline(in, node.string2) && 
getline(in, node.string3) && 
getline(in, node.string4))
{
...
string dummy;
getline(in, dummy); // skip blank line
}

您也可以使用in.ignore(std::numeric_limits<std::streamsize>, 'n');跳过空行,但读取虚拟变量可以让您轻松检查空行是否确实为空。