以下代码只是将标准输入回显到标准输出。如果我像这样运行程序./a.out
,我可以输入任何内容并且程序运行良好。但是,如果我像这样运行它,./a.out < input.txt
我会得到一个无限循环,无论input.txt
.
#include <iostream>
using namespace std;
int main() {
string input;
while (true) {
cout << "Type your input: ";
getline(cin, input);
cout << input << endl;
}
return 0;
}
我究竟做错了什么?
编辑:为了澄清,我希望在输入文件的输入完成后,getline 等待来自标准输入的更多输入。相反,它会在什么都没有时继续读取。