【发布时间】:2014-04-05 15:23:05
【问题描述】:
我正在 Windows 计算机上用 cygwin 编译和执行我的程序。我在 C 方面非常缺乏经验,但我想要一种方法来检测是否已按下某个键而不提示用户(例如我)。我的具有理想功能的伪代码如下所示。
char ch;
while(1){
if(KeyBeenPressed()){
//a key has been pressed before getting here
ch=getKeyPressed();
if(ch=='0'){
printf("you have pressed 0");
}
else{
printf("you did't press key 0");
}
}
//do other stuff
}
我自己在搜索网络后尝试解决这个问题如下所示。
#include <stdio.h>
#include <conio.h>
char ch;
void main(){
while(1){
if(kbhit()){ //kbhit is 1 if a key has been pressed
ch=getch();
printf("pressed key was: %c", ch);
}
}
}
此代码的一个问题是找不到 conio.h 文件(我还没有找到任何其他方法来解决这个问题)。显然 gcc 编译器无法处理 conio.h(我已将链接附加到它的位置)。 http://www.programmingsimplified.com/c/conio.h
所以我想知道你们中是否有人知道一种方法来检测是否在 C 中按下了一个键,我还想最好在一个字符中检索按下的键(我计划在这个应用程序中使用 0-9) .重要的是程序不能等到按键被按下。
感谢任何可以解决此问题的建议! 最好的祝福 亨里克
【问题讨论】:
标签: c windows keyboard keypress detection