在找到一堆线程之后,我在Windows上找不到任何线程,只有Linux,Ubuntu等。
简而言之,我想要找出的是如何关闭规范模式,以便控制台中的输入能够立即输入,而无需按Enter键。
更长的版本。这就是我现在要做的事情:
当PGM暂停(基于文本的游戏)时,要求用户输入箭头键以在2D阵列上移动玩家。但cin.get()
,cin.ignore()
以及我尝试过的其他一些事情都要求在继续之前按Enter键。
臭名昭着的system("pause>nul");
确实确实有效,但正如我在其他各个地方所读到的那样非常糟糕。
这是代码的一部分。 cout
语句仅用于测试目的:
//While loop
if(GetAsyncKeyState(VK_UP)){
cout << "up" << endl;
}
else if(GetAsyncKeyState(VK_DOWN)){
cout << "down" << endl;
}
else if(GetAsyncKeyState(VK_LEFT)){
cout << "left" << endl;
}
else if(GetAsyncKeyState(VK_RIGHT)){
cout << "right" << endl;
}
else{
break;}
//pauze and check for arrow key input here
答案 0 :(得分:1)
您也可以在Windows上使用getch
:
我知道它是C,你得到了已弃用的警告,但它有效......
此代码循环运行,直到您按Enter键:
检查按箭头键时会发生什么......
#include <stdio.h>
#include<conio.h>
int main ()
{
int c;
do {
c=getch();
printf("%d\n",c);
} while (c != 13);
return 0;
}