提问者:小点点

按下Control+Z后是否有继续输入的方法?


场景是,我想让用户输入数字,无论他们想输入多少次,并且在他们按下Control+Z之后,他们应该仍然能够输入其他的东西。

using namespace std;
int main(){
    int a,b;
    while(cin>>a>>b) cout << a+b<<endl;
    cin >> a;
    cout << a;
}

虽然我知道可以通过让用户输入其他东西来终止循环,但是在按下Control+Z之后,是否有任何方法可以处理输入?


共1个答案

匿名用户

没有。重点是C++程序只看到输入字符流,而不是任何按键。当您按下control-Z(注意:这取决于shell/terminal)时,该流在您的程序外部被切断,因此您的程序内部没有任何东西可以改变这一点。就我们所知,输入可能来自一个文件,那么在一个文件的结尾后面阅读有什么意义呢?这就像在报纸上读最后一页后的一页。

在某些情况下,您可能能够访问终端,并使用所谓的诅咒库更接近按键。有很多不同的环境,但这些东西不是标准C++的一部分。