getline()不返回上一个换行符

时间:2017-07-03 13:38:47

标签: c++ linux newline getline

我在linux上使用g ++但遇到了一个奇怪的问题。当试图读取以空行结尾的文件(只是' \ n')时,getline()只是跳过该行。我也尝试将其读作二进制,但结果相同。在Windows上,我能够检测到它是否有空行。在linux上没那么多。我怎样才能在linux上检测到它?

谢谢!

编辑: 尝试在此处发布代码时出现错误框: "您的帖子似乎包含未正确格式化为代码的代码。请使用代码工具栏按钮或CTRL + K键盘快捷键将所有代码缩进4个空格。如需更多编辑帮助,请单击[?]工具栏图标。"

但无论如何,它与使用getline()的文本文件部分下的this相同。

编辑2: 试图删除标签等,但仍然得到错误框。我试图用它包围它: < pre><代码> ...< / code>< / pre>

编辑3:

std::ifstream inFile(fileName);
if(!inFile)
{
    std::cout << "Cannot open input file" << std::endl;
    return;
}

std::string str;
while (getline(inFile, str))
{
    std::cout << "#" << str << "#" << std::endl;
}
inFile.close();

std::ifstream inFile(fileName); if(!inFile) { std::cout << "Cannot open input file" << std::endl; return; } std::string str; while (getline(inFile, str)) { std::cout << "#" << str << "#" << std::endl; } inFile.close();

好的,必须选择所有文本然后按Ctrl + K.

编辑4: TextFile.txt的

}\n

然后输出是:

#}#

如果我将文件更改为:

}\n
\n

然后输出是:

#}#

但我在期待:

#}#
##

0 个答案:

没有答案