![]() |
![]() |
|
![]() |
![]() |
|
Programmierung Rat & Tat für Programmierer |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#1 |
Senior Member
![]() Registriert seit: 21.10.2002
Beiträge: 163
|
![]() 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?? |
![]() |
![]() |
![]() |
#2 |
Inventar
![]() |
![]() 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))) { |
![]() |
![]() |
![]() |
#3 |
Inventar
![]() |
![]() 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 } |
![]() |
![]() |
![]() |
#4 |
Senior Member
![]() Registriert seit: 21.10.2002
Beiträge: 163
|
![]() also fflush(stdin) vor jedem einlesen, soweit sogut..
und wo pflanzt man dann das fflush(stdout) hin?? |
![]() |
![]() |
![]() |
#6 |
Senior Member
![]() Registriert seit: 21.10.2002
Beiträge: 163
|
![]() 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.. |
![]() |
![]() |
![]() |
#7 |
Senior Member
![]() Registriert seit: 21.10.2002
Beiträge: 163
|
![]() 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! |
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|