我正在尝试制作一个基本上是控制台乒乓球的小程序。所以我现在有这个:
int main()
{
while(1)
{
clearScreen();
restThread(100);
}
return 0;
}
我需要轮询的唯一输入是用户是否按下了A或D键,因为屏幕已被清除。我还需要知道密钥何时发布。我也试图做这个跨平台。
所以我真正需要的只是一个if(keyWasDown('a')){}类型的函数。
由于
答案 0 :(得分:8)
也许您希望来自<conio.h>
的{{3}}(非阻止)或kbhit(阻止)。还有来自<stdio.h>
或<cstdio>
的{{3}}。
如果您希望程序等待键盘按下,getch
或getchar
可以自行执行。
如果您 希望程序等待键盘按下,kbhit
与getch
或getchar
结合就足够了。
然而,正如GMan所说,这些方法并不是真正的跨平台(如果你从不打算在不同的平台上尝试这个,那真的是没有用)。对于控制台游戏,您可能有兴趣查看getch。
答案 1 :(得分:3)
#include <stdio.h>
#include <conio.h>
int main()
{
while(1)
{
clearScreen();
if(kbhit())
{
int const ch = getch();
switch(ch)
{
case 0x61: printf("A was pressed!\n"); break;
case 0x64: printf("D was pressed!\n"); break;
}
}
restThread(100);
}
return 0;
}