2012-09-03 28 views
7

Tôi đã viết chương trình đơn giản này trên Windows. Kể từ khi Windows có hình nón, nó hoạt động tốt.Làm cách nào để chuyển chương trình này từ hình nón sang lời nguyền?

#include <stdio.h> 
#include <conio.h> 

int main() 
{ 
    char input; 

    for(;;) 
    { 
     if(kbhit()) 
     { 
      input = getch(); 
      printf("%c", input); 
     } 
    } 
}  

Bây giờ tôi muốn chuyển nó sang Linux và các lời nguyền/ncurses có vẻ đúng cách để thực hiện. Làm thế nào tôi sẽ thực hiện tương tự bằng cách sử dụng các thư viện thay cho conio?

Trả lời

9
#include <stdio.h> 
#include <ncurses.h> 

int main(int argc, char *argv) 
{ 
    char input; 

    initscr(); // entering ncurses mode 
    raw();  // CTRL-C and others do not generate signals 
    noecho(); // pressed symbols wont be printed to screen 
    cbreak(); // disable line buffering 
    while (1) { 
     erase(); 
     mvprintw(1,0, "Enter symbol, please"); 
     input = getch(); 
     mvprintw(2,0, "You have entered %c", input); 
     getch(); // press any key to continue 
    } 
    endwin(); // leaving ncurses mode  
    return 0; 
} 

Khi xây dựng chương trình của bạn đừng quên để liên kết với ncurses lib (-L lncurses) cờ để gcc

gcc -g -o sample sample.c -L lncurses 

here bạn có thể thấy kbhit() thực hiện cho Linux.

+0

Cảm ơn bạn, đó là chính xác những gì tôi cần. –

+0

Bạn luôn được chào đón. –

0

Cài đặt ncurses và chỉ bao gồm <ncurses.h>.

để cài đặt ncurses this sẽ là trợ giúp.

+0

kbhit() dường như không tồn tại hoặc tôi đang làm điều gì đó sai? –

+0

Im không chắc chắn kbhit() được thực hiện trong ncurses. – Jeyaram

Các vấn đề liên quan