【发布时间】:2020-11-29 23:49:06
【问题描述】:
我有一个非常简单的程序,它应该打印所有递增的值,直到按下x 键。如果按下x,那么它应该退出程序,否则如果按下a,那么迭代整数应该重置为20;
#include <iostream>
int main() {
int i;
while(true){
std::cout<<i<<std::endl;
if(getchar()==120){
break;
}else if(getchar()==122){
i= 20;
}
i++;
}
return 0;
}
这里的问题是getchar() 停止循环以获取用户输入。除非按下x,否则我想无休止地运行while循环。我应该如何在linux中做到这一点?有跨平台解决方案吗?
【问题讨论】:
-
你的 C++ 教科书中的这一章到底在讨论什么?这只能使用非阻塞 I/O 来完成,这不是我希望在 C++ 入门教科书中找到的东西,你必须使用它来学习 C++。
-
如果您只使用字符输入,如果有要阅读的内容,您应该可以使用
peek()ingstd::cin,然后读取并处理来自std::cin的输入。如果您还想使用其他键,则它是高度特定于平台的。我建议使用已经提供抽象的游戏库。
标签: c++ console key keypress onkeypress