Beispielprogramme in C/Tastenabfrage in C
Aus C64-Wiki
Zur Navigation springenZur Suche springeninput.c[Bearbeiten | Quelltext bearbeiten]
C-Version des Beispielprogramms im Artikel Tastatur. Im Gegensatz zu BASIC enthält die Variable auch das abschliessende Return- beziehungsweise Zeilenende-Zeichen.
/* Programm: input.c URL: http://www.c64-wiki.de/index.php/Tastatur#Tastenabfrage_in_BASIC Compiler: cc65 compile: cl65 -tc64 input.c 10 INPUT "Geben Sie bitte etwas ein"; A$ 20 [[PRINT]] "Sie gaben ein: "; A$ */ #include <stdio.h> void main(void) { char text[255]; printf("Geben Sie bitte etwas ein\n"); fgets(text, 255, stdin); printf("Sie gaben ein: %s", text); }
get.c[Bearbeiten | Quelltext bearbeiten]
C-Version des Beispielprogramms im Artikel Tastatur
/* Programm: get.c URL: http://www.c64-wiki.de/index.php/Tastatur#Tastenabfrage_in_BASIC Compiler: cc65 compile: cl65 -tc64 get.c 10 PRINT "Druecken Sie bitte eine Taste:": A$ = "" 20 GET A$: [[IF]] A$="" [[THEN]] 20 30 PRINT "Sie drueckten die Taste: "; CHR$(34);A$;CHR(34) */ #include <conio.h> void main(void) { cputs("Druecken Sie bitte eine Taste..."); cprintf("Sie drueckten die Taste: \"%c\"\n", cgetc()); }
key_peek.c[Bearbeiten | Quelltext bearbeiten]
C-Version des PEEK-Beispielprogramms im Artikel Tastatur
#include <6502.h> #include <stdio.h> #define current_keycode (*(uint8_t *) 197) #define current_keybuffer_length (*(uint8_t *) 198) #define current_keycode_table (*(uint8_t **) 245) int main(void) { uint8_t keycode; uint8_t *keycode_table; /* Warten bis keine Taste mehr gedrückt ist. */ while (current_keycode != 64); puts("Druecken Sie bitte eine Taste..."); /* Auf Tastendruck waren. */ while ((keycode = current_keycode) == 64); /* * Sicherstellen, dass der Zeiger auf die Tastencode-Tabelle * atomar ausgelesen wird. */ SEI(); keycode_table = current_keycode_table; CLI(); printf( "\nSie drueckten die Taste \"%c\",\n" "Tastencode %d aus Tabelle %p.", keycode_table[keycode], keycode, keycode_table ); current_keybuffer_length = 0; return 0; }