PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : C: Buffer nach Eingabe löschen (linux vs Solaris)



Hypergrip
10-04-2002, 12:54
Hi Leutz.

Also erstmal ne Warnung: Ich bin totaler C-Anfänger.
In der Schule benutzen wir C auf Sun Solaris Rechnern.
Im Interricht wurde uns zum leeren des Buffers nach einer Eingabe der Befehl fflush (stdin) beigebracht, was auf den Suns auch funktioniert hat.
Als ich meine Aufgaben zuhause erledigen wollte, lief das Teil dann allerdings nicht mehr (Das RETURN, blieb im Buffer und sorgte damit bei der nächsten scan-anweisung für eine Fehleingabe).
Der fehler entsteht sowohl auf meiner SuSE 7.3, als auch auf der Debian & RedHat eines Kumpels.
Zum Kompilieren wurde auf alles Systemen (auch der Solaris) der aktuelle gcc benutzt.

Kann mir irgendwer erklären, warum dieser Befehl nur auf der Solaris zu funktionieren scheint, und welchen Befehl ich unter einem anderen Linux-System verwenden kann.

Thx

Olli

TThomas
10-04-2002, 14:42
Hm, sollte eigentlich schon funktionieren...

Poste mal deinen Code, vielleicht hast du nen anderen Fehler?


Gruß, Thomas.

Baegsch
10-04-2002, 17:17
Das Problem kenn ich! Eine funktionierende Lösung wär ein 'dummy' getchar(); was ja gleich \n liest und so nicht wirklich bemerkt wird. Ich denke mal heutzutage kann man diesen kleinen Performanceverlust schon verkraften ;)

Hypergrip
10-04-2002, 17:56
ja, auf die Weise hab ich das dann auch realisiert, allerdings war unsere Dozentin davon garnicht begeistert und laberte was von wegen schlechter Programmierstil usw.
Ich hab zwar versucht, ihr zu erklären, dass die von ihr angegebene Methode nur auf den plöden Solaris-Rechnern läuft, aber das wollte sie nicht einsehen... *sigh*
Jedenfalls wurmt mich diese Sache nun und ich wüsste einfach gerne, ob es einen "eleganten" Weg/Befehl gibt, unter einem "normalen" Linux den Buffer zu leeren..

Olli

oracle2025
11-04-2002, 21:32
Worum geht's denn genau?
wenns nur darum geht, eine art Userinterface auf Konsolen Ebene zu Implementieren, um ein bisschen programmieren zu lernen, dann würd ich sagen, isses schon in Ordnung wenn man etwas "zaubert", ein ernsthaftes Konsolen-UI baut man dann meistens eh mit eigens dafür vorgesehenen Bibliotheken (ncurses).
Aber vielleicht versuchst du eingfach mal eine ganz andere Funktion, da gibt's sicher mehrere Möglichkeiten unter C.
Ich würd dir sogar eine sagen, leider hab ich keine Ahnung von C, (werde gerade auf C++ ausgebildet, da gibts cout cin, hehe)

Ritschi