c++ - 按 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 后是否可以使用输入?
解决方案
不,没有。关键是 C++ 程序只看到输入字符流,而不是任何按键。当您按下 control-Z(注意:这取决于外壳/终端)时,该流在您的程序外部被切断,因此您的程序内部没有任何东西可以改变它。据我们所知,输入可能来自文件,那么在文件末尾读取的含义是什么?这就像在报纸上阅读最后一页之后的页面。
在某些情况下,您可以使用所谓的 curses 库访问终端并更接近按键。对于不同的环境有很多,但这些东西不是标准 C++ 的一部分。
推荐阅读
- python - 为什么 Django inlineformset_factory 在文件上传时出现保存禁止错误?
- mongodb - 如何检查一个字段的字符串值是否是MongoDB中另一个字段的子字符串
- regex - 使用 AutoWikiBrowser 的 wiki 文章中的句子大小写
- jvm - (Javonet) 初始化 jvm 失败
- sql - SQL 查询:如何退回没有评论的产品
- android-recyclerview - 如何在 recyclerview 运行时更改所有项目的字体
- google-drive-api - 如何定期运行我的 colab 笔记本
- javascript - 使用 Velo 在 Wix 网站上单击按钮运行自定义 javascript
- ruby-on-rails - 用户在注册时发布第一个嵌套帖子,Ruby on rails
- .net - React 本机应用程序无法使用 axios 从 .net 服务器获取数据