【问题标题】:How can i skip blank lines when reading from a file in C++?从 C++ 中读取文件时如何跳过空白行?
【发布时间】:2016-02-01 08:45:18
【问题描述】:

从 C++ 中读取文件时如何跳过空白行? 设置是:我有一个包含 50 个问题的文本文件,每个问题后跟四个可能的答案。我正在使用二维数组来存储所有这些:问题[50][5]

所以文本文件的结构如下:

1行长度问题

回答一个

回答 b

回答 c

回答 d

1行长度问题

回答一个

回答 b

回答 c

回答 d

等等..

问题或任何答案之间没有间隙,但每组问题和4个答案之间,有未知数量的空白行。

对于每组问题,我正在使用循环将问题和答案输入到我的数组中,但是如何跳过每组问题的未知数量的空白行?这是我的代码

    //reading in the questions
    for(int i = 0; i < 50; i++)
    {


    while(getline(qFileIn,test)) //seeing if its empty
    {
            if(test.empty())
                    continue;
            if(!(test.empty()))
                    break;
    }
            for (int j = 0; j < 5; j++)
            {

                    getline(qFileIn,questions[i][j]);
            }

    }

我真的很难尝试跳过这两个 for 循环中的某个地方的空白行,我非常感谢一些帮助。 谢谢!!!

【问题讨论】:

  • 你的代码中试图跳过一行的部分是好的,但你实际上每六行才执行一次......
  • 尝试向橡皮鸭 (en.wikipedia.org/wiki/Rubber_duck_debugging) 寻求帮助
  • 但是当我使用 getline 跳过一行时,我仍然只是在阅读它,如果它不是空行,那么我无法再次阅读同一行并保存该行在问题数组中

标签: c++ file


【解决方案1】:

试试这个 qFileIn.ignore(256, '\n');它会跳过空行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多