Tastatureingabepuffer in String schreiben und dann leeren
-
hi,
ich bin durch google auf euer forum gestoßen und hab direkt mal eine frage
wie schon im titel beschrieben möchte ich den eingabepuffer auslesen, in ein char-array schreiben und den puffer dann leeren.
mir persönlich würde es am besten in echtzeit gefallen, also tastendruck --> einlesen --> speichern wo ich leider gar keine ahnung hab wie es gehen könnte
das leeren des puffers ist mir ebenfalls ein rätsel, da wir laut prof. kein fflush verwenden dürfen.
gesucht habe ich bis jetzt in meinem uni-sammelwerk, bei galileo-c-guide und google wo ich als halbwegs sinnvoll nur http://www.wer-weiss-was.de/theme9/article240684.html eingestuft habe.
wissensstand ist ein wenig c aus allen richtungen, also schul- und uniwissen (2.sem medieninformatik) viel aber ich wieder vergessen, aber wenn ich code sehe versteh ich ihn meistens recht gut ^^
bis jetzt habe ich nur einen relativ kläglichen anfang, der auch nicht funktioniert wie gesagt echtzeit einlesen wär toll, aber nichtmal so bricht er in irgendeiner form ab.
\n ist meinen infos nach enter aber abbrechen tut er die schleife nicht.
509 habe ich bei oben genannten link als maximum für strings gesehen daher diese zahl.ich hoffe ihr könnt mich eines besseren belehren, und danke schonmal im voraus
mfg
andi#include <stdio.h> #include <stdlib.h> int main() { int c, i=0; char text[509]; while ((i<10) && (c=getc(stdin) != EOF) && (c !='\n')) { text[i]=c; i++; }; printf ("\n%s\n",text); return 0; }
-
c strings muessen mit einer null aufhoeren, also keine ascii null sondern eine binaere null.
nach der while-schleife muss text[i] = 0; stehen. i zeigt auf das zeichen nach dem letzten gelesenen zeichen, und da muss eine null stehen, also '\0' == 0 und nicht '0' == 48.