I am compiling and executing my programs in cygwin on a windows computer. I am quite inexperienced in C but I would like a way to detect if a key has been pressed without prompting the user(e.g me). My pseudo code with desirable functions is shown below.
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
}
And my own try to solving this after searching the web is shown below.
#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);
}
}
}
A problem with this code is that the conio.h file can't be found(and I haven't found any other way to solve this). Apparently gcc compilers can't handle conio.h(I have attached the link to were it stood). http://www.programmingsimplified.com/c/conio.h
So I wonder if any of you guys know a way to detect if a key has been pressed in C, I would also like to retrieve the pressed key preferably in a char (I plan on using 0-9 for this application). The important thing is that the program can't wait until a key is pressed.
I am thankful for any suggestions that could solve this! Best regards Henrik
Most of Dos, Windows 3.x or win32 platform provide the file conio.h, but unix or linux Os is not provide this file normally. If you use unix or linux Os , you must download it on the internet By yourself. i hope my answer is useful for you.
I use the following function for
kbhit()
. It works fine on g++ compiler in Ubuntu.