Eingabepufferung unter C

dawen

dawen

Jungspund
Hallo,

ich würde mal gerne wissen, welche Möglichkeiten es gibt, mit dem Problem der Eingabepufferung unter C umzugehen, welche Funktionen es dafür so gibt ?
 
Also in C++ hätte ich gesagt cin und Strings statt scanf und char*.
In C wird das wohl schlecht gehen..
Was mir da einfallen würde um das scheinbar zu umgehen ist ein ein Buchstaben Puffer mit getchar() und einer while Schleife - aber wirklich das Gelbe vom Ei ist das auch nicht.
 
Daten einlesen geht mit fgets() wunderbar und problemlos :)

Mfg, Lord Kefir
 
Danke erstmal für die Antworten. Die unter Windows beliebte conio.h bietet die Funktionen getch()/getche(), was haltet ihr von den Methoden setbuf() bzw. setvbuf() oder fflush(stdin), wären das elegante Möglichkeiten.
 
unter c++ kannst die auch cin.get(); anschauen.

Gruß

zyon
 
was es unter windows in conio.h gibt gibt es im endeffekt so auch in der bibliothek lncurses unter linux!
 
Also ich würde mir einfach ein "struct buffer;" bauen und zusätzlich die Funktionen buffer_add(struct buffer *buf, char c); sowie buffer_addn(struct buffer *buf, char *str, int n); und damit die Zeichen in den Buffer laden, welcher durch die beiden Funktionen den Speicher intern verwaltet.
So ähnlich macht das auch der std::streambuf in C++.
Und an die Zeichen kommste dann halt mit fgetc/fgets.

dawen schrieb:
Die unter Windows beliebte conio.h bietet die Funktionen getch()/getche()
Conio bzw. Ncurses sind glaube ich hier unnötig. Wenn ich richtig informiert bin erspart einem getch() doch nur das <Enter> drücken nach dem Zeichen oder?

dawen schrieb:
was haltet ihr von den Methoden setbuf() bzw. setvbuf() oder fflush(stdin), wären das elegante Möglichkeit
Von den beiden Funktionen habe ich leider ebenfalls keine Ahnung.
Ist es denn aber nicht so dass diese Funktionen nur den internen Puffer, den der Stream benutzt, verändern und dass sich das nicht direkt auf "unser Problem" auswirkt?
 
in c kannst du das ganze noch so umgehen dass du dir deine console in den raw modus schaltest, und dir dann deine eigene eingabe methode schreibst!
 

Ähnliche Themen

CPU und Memory Verbrauch von Anwendungen über Zeit wissen?

Welche Distro wie RHEL (Tools & Repos)?

Ubuntu, Debian & Co.: Schwachstelle in glibc gewährt Root-Zugriff unter Linux

Versehentlich gelöschte Daten zurückholen

Software-Entwickler C/C++, embedded, automotive (m,w,d) in München gesucht

Zurück
Oben