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

C++ 在一次迭代中从txt文件的多行读取,c++,file,C++,File,我目前正在处理链表,我的节点有4个元素(其中每个元素都是变量类型的字符串)。在.txt文件中,有多组文本,每组有4行,例如: 这是第一行 这是第二行 这是第三行 这是第四行 “\n” 这是第五行 这是第六行 这是第七行 这是第八行 等等等等等等。。。 我试图实现的是在一次迭代中读取四行代码,并将它们交给一个节点,然后让程序迭代,直到没有更多的代码行 因此,如果阅读上面的例子,我们的节点将被留下 Node1.string1=这是第一行 Node1.string2=这是第二行 Node1.str

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

  • 这是第一行
  • 这是第二行
  • 这是第三行
  • 这是第四行
  • “\n”
  • 这是第五行
  • 这是第六行
  • 这是第七行
  • 这是第八行
等等等等等等。。。 我试图实现的是在一次迭代中读取四行代码,并将它们交给一个节点,然后让程序迭代,直到没有更多的代码行

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

Node1.string1=这是第一行

Node1.string2=这是第二行

Node1.string3=这是第三行

Node1.string4=这是第四行

在internet上寻找实现此目的的方法时,我找到了一种方法,您可以这样做,并告诉“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
}
也可以在.ignore(std::numeric_limits,“\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
}

也可以在.ignore(std::numeric_limits,“\n”)中使用
跳过空白行,但读入哑变量可以轻松检查空白行是否为空。

到目前为止,您尝试了什么?你能显示代码吗?我试过用for(字符串行;getline(reader,line);)和istringstream;问题是我可以从一个字符分隔的行中读取多个内容。但是这一次,我要处理的东西太大了,不能在一条线上有多个。到目前为止,你做了哪些尝试?你能显示代码吗?我试过用for(字符串行;getline(reader,line);)和istringstream;问题是我可以从一个字符分隔的行中读取多个内容。但是这次我要处理的东西太大了,不能在一行中有多个。非常感谢!我在处理文件时总是很辛苦,这正是我所需要的。非常感谢!当我处理文件时,我总是很困难,这正是我所需要的。