WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   Frage zu C mit der Eclipse-Umgebung (http://www.wcm.at/forum/showthread.php?t=147310)

maxmustermann 12.10.2004 14:59

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??

CISK 12.10.2004 15:27

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 12.10.2004 15:28

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
}

maxmustermann 13.10.2004 00:01

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

und wo pflanzt man dann das fflush(stdout) hin??

Flink 14.10.2004 15:59

nach jeder Ausgabe.

maxmustermann 14.10.2004 16:18

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 14.10.2004 18:22

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!


Alle Zeitangaben in WEZ +2. Es ist jetzt 12:59 Uhr.

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