如何解决为什么_getch() 仍然等待输入而不是直接注册用户输入?
我想使用箭头键用户输入,而无需用户每次单击箭头后都按 Enter。因此,我决定使用 _getch(),据称它就是这样做的。它是我导入的 conio.h 库的一部分。但是,就我而言,_getch() 还要求用户按 Enter 键,并且不会立即注册用户输入,因为它应该如此。我该如何解决? (我在 Windows 上运行)
#include<iostream>
#include <conio.h>
using namespace std;
int main() {
int p = _getch();
cout<<p;
return 0;
}
比如在上面的代码中,不是在控制台接收到输入后直接打印p的值,而是等待按下回车。
解决方法
读取功能键或方向键时,每个功能必须调用两次;第一次调用返回 0 或 0xE0,第二次调用返回实际的键码。
因此,您的代码的修订版可能如下所示:
#include <iostream>
#include <conio.h>
int main() {
int p = 0;
while(p == 0 || p == 0xE0)
p = _getch();
std::cout << p;
return 0;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。