是否可以跳过数据文件中的一行?

时间:2014-11-28 22:03:29

标签: c++ file-io

我有一个我想要输入的数据文件,数据通过空行分成几个部分。数据将从文本文件中读取。

如何让我的代码跳过一个空行来读取下一段数据?我目前正处于申请的计划阶段。

我是初学者,所以我不确定如何解决这个问题。

有人可以建议如何处理这个方法吗?

我刚写完了,我的代码看起来像这样:

        string  ship2_id;
        char ship2_journey_id[20];
        float ship2_l; 
        int ship2_s;

        getline(itinerary_file, ship2_id);

        if (ship2_id = ' ')
        {
            itinerary_file.ignore(numeric_limits<streamsize>::max(), '\n');

        }
        else
getline(itinerary_file, ship2_id);
cout << ship2_id << endl;

2 个答案:

答案 0 :(得分:1)

是,

stream.ignore(max_number_of_chars_to_be_skipped, '\n');

我通常只使用1ul<<30或类似的第一个参数,但

  • 如果输入不受信任且跳过这些字符的速度很慢,则可能是DoS向量
  • &#34; pedant&#34;值将显示为std::numeric_limits<std::stream_pos>::max()或类似的

答案 1 :(得分:0)

我不是你用什么来读取文件,但是,为了搜索一个空行,一起寻找两个“换行符”。请注意,某些操作系统的“断路器”字符不同。在Windows中,默认情况下,有两个字符一起用于换行符。