WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 12.10.2004, 14:59   #1
maxmustermann
Senior Member
 
Registriert seit: 21.10.2002
Beiträge: 163


Standard Frage zu C mit der Eclipse-Umgebung

mit c unter eclipse hat man probleme mit tastaturpuffer leeren usw, bzw man muss manuell nen befehl setzen, sonst springt er zb über scanf befehle drüber oder ähnliches..

hab früher mit borland C programmiert, da hatte ich dieses problem nicht, da wurde der automatisch geleert..

jetzt wurde mir gesagt das ich fflush(stdout) bzw fflush(stdin) verwenden muss um das manuell zu machen!

meine frage is jetzt, wann genau muss ich fflush(stdout) bzw fflush(stdin) verwenden?
also vor bzw nach welchen befehlen sollte ich sowas setzen??
maxmustermann ist offline   Mit Zitat antworten
Alt 12.10.2004, 15:27   #2
CISK
Inventar
 
Registriert seit: 24.05.2001
Alter: 40
Beiträge: 3.387

Mein Computer

Standard

bevor du wieder etwas einlesen willst mach ein
fflush(stdin);

dann is der kb-buffer leer und du kannst wieder was neues eingeben


bsp:

while(!(scanf("%d",&balbla)))
{
CISK ist offline   Mit Zitat antworten
Alt 12.10.2004, 15:28   #3
CISK
Inventar
 
Registriert seit: 24.05.2001
Alter: 40
Beiträge: 3.387

Mein Computer

Standard

hallo?
forum? was geht da vor
miten unterm beitrag schreiben wird der text gepostet und die hälfte fehlt?!?!

also nochmal:

einlesen
while(fehler beim einlesen)
{
fflush(stdin)
einlesen
}
CISK ist offline   Mit Zitat antworten
Alt 13.10.2004, 00:01   #4
maxmustermann
Senior Member
 
Registriert seit: 21.10.2002
Beiträge: 163


Standard

also fflush(stdin) vor jedem einlesen, soweit sogut..

und wo pflanzt man dann das fflush(stdout) hin??
maxmustermann ist offline   Mit Zitat antworten
Alt 14.10.2004, 15:59   #5
Flink
Hero
 
Registriert seit: 29.08.2001
Alter: 57
Beiträge: 904


Flink eine Nachricht über ICQ schicken Flink eine Nachricht über Skype™ schicken
Blinzeln

nach jeder Ausgabe.
____________________________________
Bibel
Flink ist offline   Mit Zitat antworten
Alt 14.10.2004, 16:18   #6
maxmustermann
Senior Member
 
Registriert seit: 21.10.2002
Beiträge: 163


Standard

hmm.. also dann versteh ich eclipse nicht! hab das ganze programm mit fflush(stdin) und fflush(stdout) zugepflastert und er überspringt mir noch immer die eingabe..

habs nach der anleitung probiert und dann auch noch wenn ichs überall davor und danach hinschreib..

geht nicht! scheiss programmierumgebung..
maxmustermann ist offline   Mit Zitat antworten
Alt 14.10.2004, 18:22   #7
maxmustermann
Senior Member
 
Registriert seit: 21.10.2002
Beiträge: 163


Standard

also anscheinend liegts nicht allgemein an der entwicklungsumgebung, sondern irgendwie is es von installation zu installation verschieden!

auf einem rechner gibt er es korrekt aus, auf einem anderen überspringt er teilweise eingaben!

hatte das fflush(stdin) und fflush(stdout) eh wie beschrieben gesetzt gehabt, schon bevor ich hier gepostet hab, nur eben gings trotzdem nicht auf dem rechner wo ich programmiert hab
jetzt probier ich es auf einem anderen aus da gehts.. aber das problem haben mehrere leute, also liegts nicht nur an dem einen rechner!
kennt jemand dieses problem und evtl ne lösung oder nen grund dafür??

*edit*

hab gerade erfahren das es daran liegt, das auf den rechnern wo es geht noch bloodshed dev-c installiert ist! anscheinend verwendet er von dem noch die bibliothek oder so ähnlich und dort geht der fflush befehl!

wenn man nur eclipse installiert hat, dann geht das nicht!
da muss man einfach nach dem einlesen ein weiteres scanf hinpflanzen das das enter das im tastaturpuffer is eingelesen wird, und damit is der puffer dann leer, also in eine variable einlesen welche man nicht braucht bzw nur für das benutzt!
bissl umständlich aber anscheinend gehts nicht anders!

falls wer noch ne andere lösung kennt wenn nur eclipse installiert ist nur raus damit!
maxmustermann ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:31 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag