我在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的这个应用程序)。重要的是程序不能等到按下某个键。
我很感激任何可以解决这个问题的建议! 问候函 Henrik
There:http://stackoverflow.com/questions/4293355/detecting-key-press-in-c-without-prompting-the-user – Jean
linux:http://stackoverflow.com/questions/2984307/c -key-in-linux-console –