Strings von Tastatur einlesen??
-
Hallo, Leute! Ich habe mal eine Frage:
Ich brauche eine Funktion, die Strings vom Benutzer einliest an der Konsole. Sowas wie gets(), aber so, dass man herrauskriegen kann, ob die Cursor- UP- und DOWN-Taste gedrückt wurde!!! In Basic könnte man sich sowas mit $INKEY machen, ich würde aber gerne wissen wie das unter C geht, dass man Daten einlesen kann wie mit gets() aber die UP-DOWN-Keys abfragen kann!!
Helft mir bitte!!
code_pilot
-
bin nicht sicher, aber so was wie getchar hab ich mal gehört. weiss nicht genau.
-
wenn du die pfeiltastenabfrage meinst, steht was zu im faq oder gibts viel unter der suche...
z.B. so:
-
Direkt aus einer Funktion wie gets() eine Pfeiltaste auslesen geht nicht, da sie imho nicht an den String angehängt wird...du musst einen String also als Kette von Zeichen einlesen -> getch(). Mehr dazu findet sich in der FAQ.
MfG SideWinder
-
Hallo! Danke erstmla, habe jetzt folgendes Testprogramm geschrieben:
#pragma hdrstop #include <condefs.h> #include <string.h> #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <iostream.h> //--------------------------------------------------------------------------- #pragma argsused int main(int argc, char* argv[]) { char test[30]; char ch; printf("Hello World!\n\n"); while (ch != 'a') { ch = getch(); cout << ch; } printf("\n\nsy<dfsdfghsdh: %s\n\n",test); system("pause"); return 0; }
Okay. Funzt auch, nur es gibt ein Problem: Wenn ich jetzt eingegebenen Text wieder löschen will, dann springt der Cursor zwar ein zeichen zurück, aber er überschreibt das Zeichen, was er eigentlich löschen sollte, nicht mit einem Leerzeichen. Könnt ihr mir sagen wie die Funktionen heissen mit der ich die aktuelle Zeile und Spalte des Cursors ermitteln kann???
Danke und Gruss,
code_pilot
-
Also dazu benützt du am besten die Improved Console (siehe FAQ), mit der lässt sich nicht nur die Cursor-Position ermitteln, sondern noch einiges mehr ;).
MfG SideWinder