繁体   English   中英

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

[英]Reading from multiple lines from a txt file in a single iteration

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

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

依此类推……我想要实现的是在一次迭代中读取四行并将它们提供给一个节点,然后让程序迭代直到没有更多的行。

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

Node1.string1 = 这是第一行;

Node1.string2 = 这是第二行;

Node1.string3 = 这是第三行;

Node1.string4 = 这是第四行;

在互联网上寻找一种方法时,我找到了一种方法可以做到这一点,并告诉“ifstream 阅读器”在下一次迭代之前执行 '\n',但我丢失了这个页面,似乎找不到它

很容易

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'); 跳过空白行,但是读入一个虚拟变量可以让您轻松检查空白行是否真的是空白。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM