Unter C ein Zeichen aus der Tastatur auslesen.
- benkenobi68
- Beiträge: 32
- Registriert: 31.10.2005 10:45:06
- Wohnort: Region Hannover
-
Kontaktdaten:
Unter C ein Zeichen aus der Tastatur auslesen.
Hallo und Guten Morgen,
mein Problem ist folgendes:
Ich suche eine Routine unter C, mit der ich ein zeichen aus der tastatur auslesen kann, ohne dass ich dieses mit <Return> bestätigen muss.
Beispiel:
Ein textgesteuertes Menu, bei dem eine Auswahl mittels Buchstaben oder Zahl erfolgt. Das Programm soll nach drücken der Tatste weiterlaufen.
Es gibt eine conio.h, dort ist eine Funktion mit dieser Funktionalität implementiert. Da conio.h allerdings in erster Linie für DOS/Windoof-Bereiche entwickelt wurde, möchte ich diese nicht nutzen, um "sauber" zu bleiben bei der Programmierung.
Gruß JU
Probiers mit getch(), bin mir aber jetzt nicht sicher ob das conio.h ist oder nicht..
Dann müsstest den ASCII Code von der Taste, die gedrückt wurde in x haben! Danach vl. noch ein printf, damit der User sieht, was er eingegeben hat!
Edit: getch() ist conio.h sorry
Code: Alles auswählen
x=getch();
Edit: getch() ist conio.h sorry
https://www.debianforum.de/forum/viewto ... 638#105638
Besser ist es aber wohl, gleich (n)curses zu nutzen.
Besser ist es aber wohl, gleich (n)curses zu nutzen.
- benkenobi68
- Beiträge: 32
- Registriert: 31.10.2005 10:45:06
- Wohnort: Region Hannover
-
Kontaktdaten:
was ist ncurses?
Was ist ncurses?
ich bin Umsteiger von Pascal auf C.
Unter Pascal gibt es eine Funktion, die "keypressed" heißt. Diese ist solange "false", bis eine Taste gedrückt ist. Mit der Funktion "readkey" konnte man dann das Zeichen ungepuffert auslesen.
Es soll in erster Linie darum gehen, textbasierte Menus recht komfortabel zu gestalten, weil man so die Eingabe nicht immer bestätigen musste.
Zielrichtung:
Danke JU
ich bin Umsteiger von Pascal auf C.
Unter Pascal gibt es eine Funktion, die "keypressed" heißt. Diese ist solange "false", bis eine Taste gedrückt ist. Mit der Funktion "readkey" konnte man dann das Zeichen ungepuffert auslesen.
Es soll in erster Linie darum gehen, textbasierte Menus recht komfortabel zu gestalten, weil man so die Eingabe nicht immer bestätigen musste.
Zielrichtung:
Code: Alles auswählen
do
...
while !keypressed;
auswahl = readkey;
Re: was ist ncurses?
Eine Library, um Terminals anzusteuern. Eine neuimplementation von cursesbenkenobi68 hat geschrieben:Was ist ncurses?
Sowas gibt es unter Unix nicht automatisch, da man sich ja auch per Modem etc. auf einem anderen Rechner anmelden konnte/kann.Unter Pascal gibt es eine Funktion, die "keypressed" heißt. Diese ist solange "false", bis eine Taste gedrückt ist. Mit der Funktion "readkey" konnte man dann das Zeichen ungepuffert auslesen.
Um nich ständig Daten übertragen zu müssen, sendet das Terminal die Daten erst an das Programm, wenn die Enter Taste betätigt wurde.
Um das Abzuschalten muss man, wie schon geschrieben, das Terminal in den Raw-Modus schalten.
Um komfortabel Menüs machen zu können, schau dir mal ncurses an, dort gibt es dann auch zu "gotoxy" etc. äquivalente Befehle. Wenn du nur ein getch haben willst, das sofort auf Tastendrücke reagiert, lies dir den Post durch, auf den ich verwiesen habe.