Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
505 views
in Technique[技术] by (71.8m points)

windows - c programming check if key pressed without stopping program

as you know, when using getch() in windows, the applications waits for you until you press a key,

how can i read a key without freezing the program , example :

void main(){
  char   c;
  while(1){
  printf("hello
");
  if (c=getch()) {
  .
  .
  .
  }  
}

thank you.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

You can use kbhit() to check if a key is pressed:

#include <stdio.h>
#include <conio.h> /* getch() and kbhit() */

int
main()
{
    char c;

    for(;;){
        printf("hello
");
        if(kbhit()){
            c = getch();
            printf("%c
", c);
        }
    }
    return 0;
}

More info here: http://www.programmingsimplified.com/c/conio.h/kbhit


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...