Den Wed, 25 Apr 2001 15:29:51 +0200 skrev Allan Weber:
>Takker, det var jeg ikke klar over. Et sidste spg.:
>vil følgende gemme den trykkede tast i charKey:
>
> char charKey ;
Du bør bruge chtype i stedet for char her:
chtype charKey;
> initscr(); /* Initialize ncurses */
> cbreak(); /* Don't wait for enter */
> noecho(); /* Don't show keypresses on skreen */
> keypad(stdscr,TRUE); /* Special keys (?) */
>
> while (charKey != 'q'){
Medmindre der er tale om en global/static variabel, er det dit ansvar
at initialisere charKey til noget fornuftigt. Ellers er der nøjagtig
lige så stor sandsynlighed for at den indeholder 'q' første gang, som
der er for en hvilkensomhelst anden værdi.
Alternativt kan du bruge:
while((charKey=getch()) != 'q') {
....
}
eller:
do {
charKey=getch()
....
} while(charKey!='q');
> charKey = getch();
> printf("%c", charKey);
printf hører til stdio, men du bruger curses. De kan ikke bruges
samtidig. Prøv i stedet med:
mvprintw(2,1,"%c",charKey);
Skriv på linie 2, første tegn. Derefter bør du have:
refresh();
For at opdatere den fysiske skærm. ncurses giver de samme eller flere
muligheder som CRT, som du sikkert kender fra Borland.
> }
>
> erase(); /* Clear screen */
> refresh(); /* Update the physical screen */
> endwin(); /* Shut down ncurses */
Mvh
Kent
--
http://www.celebrityshine.com/~kfr/ - sidste billede: garden.png