通过终端在文件中输入时检测 EOF(文件结尾)的问题

Problem in detecting EOF (end of file) while giving input in a file via terminal

我是 运行 我的代码并通过 .txt 文件提供输入 (./a.out<input.txt ),但它似乎无法识别文件结尾。

当我复制 ubuntu 中的内容时,它起作用了。我认为文件是在 MAC.

中创建的

EOF 就像终端中的 CTRL+C 所以它应该停止执行代码但最后一个命令连续解析为输入。我无法更改文件(它是测试文件,格式不可更改。)。谁能帮我解决这个问题? 我附上了我的代码,但我认为这是文件问题。

编辑:我找到了解决方案。通过添加

if(!getline(cin, s)){
   break;
}

或类似行,问题将得到解决!

我找到了解决方案。通过添加

if(!getline(cin, s)){
   break;
}

或类似行,问题将得到解决!