2012-09-03 8 views
7

Napisałem ten prosty program w systemie Windows. Ponieważ system Windows ma conio, działało dobrze.Jak przenieść ten program z Conio do Curses?

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

int main() 
{ 
    char input; 

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

Teraz chcę przenieść go na Linuksa, a przekleństwa/ncurses wydają się być właściwym sposobem na zrobienie tego. Jak mógłbym to zrobić, używając tych bibliotek zamiast conio?

Odpowiedz

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; 
} 

Budując program nie zapomnij połączyć z ncurses lib (-L lncurses) Flaga GCC

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

And here widać kbhit() realizacja dla systemu Linux.

+0

Dziękuję, dokładnie tego potrzebowałem. –

+0

Zawsze jesteś mile widziany. –

0

Zainstaluj ncurses i po prostu dołącz <ncurses.h>.

do instalacji ncurses this będzie pomocne.

+0

kbhit() wydaje się nie istnieć, czy robię coś nie tak? –

+0

Nie jestem pewien, czy kbhit() jest zaimplementowany w ncurses. – Jeyaram

Powiązane problemy