我有一个带有一些数据的CSV文件:
3;13.12.2014;inline;33;434;5434
如何检查该行是否以'\ n'结尾?
我尝试过使用getline,但是getline已经将'\ n'作为分隔符。
答案 0 :(得分:3)
这是检查eof()
的顺序的一种情况。 std::getline
的输入可以通过以下三个条件之一终止:文件结束,终结符匹配(将被提取)或尝试提取超过std::string::max_size()
个字符。在实践中,最后的条件可能永远不会发生;在此之前你会遇到std::bad_alloc
。如果已提取终结符,则eof()
仍将为false,因为文件末尾将不会被查看。如果输入因文件结尾而终止,则eof()
将被设置;如果没有输入其他字符,则还会设置std::failbit
。因此条件eof() && !fail()
表示您已阅读最后一行,并且错过了'\n'
。
答案 1 :(得分:0)
谢谢你的回答。 所以,我有建设:
fstream file("sport.csv", fstream::in);
string line;
while(getline(file,line))
{
cout << line << endl;
}
现在,我不知道,我把条件eof() && !fail()
放在哪里?