【问题标题】:How to check, if '\n' on end CSV File如何检查,如果 '\n' 结束 CSV 文件
【发布时间】:2015-02-13 11:34:50
【问题描述】:

我有一个包含一些数据的 CSV 文件:

3;13.12.2014;inline;33;434;5434

如何检查行是否以 '\n' 结尾?

我试过使用 getline,但 getline 有 '\n' 作为分隔符。

【问题讨论】:

  • 你到底为什么在乎?

标签: c++ csv getline


【解决方案1】:

这是一种需要检查eof() 的情况。 std::getline 的输入可以由以下三个条件之一终止:文件结束、匹配终止符(将被提取)或尝试提取多个 std::string::max_size() 字符。在实践中,最后一种情况可能永远不会发生;在那之前你会遇到std::bad_alloc。如果终止符已经被提取,那么eof() 仍然是假的,因为文件的结尾不会被看到。如果输入因文件结束而终止,则 eof() 将被设置;如果没有输入其他字符,那么std::failbit 也将被设置。所以条件eof() && !fail() 意味着您已经阅读了最后一行,并且它缺少'\n'

【讨论】:

    【解决方案2】:

    谢谢你的回答。 所以,我有建设:

    fstream file("sport.csv", fstream::in);
    string line;
    
    while(getline(file,line))
    {
        cout << line << endl;
    }
    

    现在,我不知道,我把条件 eof() &amp;&amp; !fail() 放在哪里了?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-08-29
      • 1970-01-01
      • 2015-09-12
      • 1970-01-01
      • 1970-01-01
      • 2021-03-21
      • 2013-08-06
      相关资源
      最近更新 更多