执行命令:
./program < input.txt
Run Code Online (Sandbox Code Playgroud)
使用以下代码检查:
string input;
while(cin) {
getline(cin, input);
}
Run Code Online (Sandbox Code Playgroud)
上面的代码似乎生成一个额外的getline()调用,其中输入为空.无论\ninput.txt的最后一行是否有a ,都会发生这种情况.
@Jacob有正确的解决方案但由于某种原因删除了他的答案.这是循环中发生的事情:
cin 检查是否有任何故障位(BADBIT,FAILBIT)cin 报告没有问题,因为尚未从文件中读取任何内容.getline 被调用,它检测文件结束,设置EOF位和FAILBIT.你需要做这样的事情:
std::string input;
while(std::getline(std::cin, input))
{
//Have your way with the input.
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4506 次 |
| 最近记录: |