我在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 –