假设我有一个程序接受来自键盘的输入,或者接受来自文件的重定向输入,例如:
#include <iostream>
using namespace std;
int main() {
string str;
while (getline(cin, str)) {
if(str.compare("exit") == 0)
return 0;
}
return 0;
}
在这个实现中,我希望使用键盘输入的程序实例将在键入“exit”时终止,并且使用文件输入的程序实例将在 EOF 时终止。
我想实现这样的功能,如果正在运行的程序实例使用文件输入,它将允许在到达 EOF 时进行键盘输入,而不是终止。我做了一些研究,表明这是不可能getline
的,因为它是 while 循环的条件,因为一旦文件输入结束,它就会返回 false,而且我不知道有什么方法可以告诉cin
我要接受键盘当时输入。
那么,是否可以cin
在文件运行时从接受文件输入切换到接受键盘输入?如果不是,你能解释一下为什么吗?