C Problem
-
lekos schrieb:
System("PAUSE");
oder
getchar(); getchar();
Oh das ist boese. Wenn möglich solltest du "system()" aufrufe vermeiden und ein doppeltes getchar()?
Ne das ist auch nicht gut. Vielleicht hast du ja vergessen davor das '\n' aus dem Eingabepuffer zu hohlen?(Weshalb es mit einem getchar() dann nicht geht..) Schaumal da--> http://www.pronix.de/pronix-656.html
Und falls du mal über fflush(stdin) stolperst, das ist auch schlecht^^
-
Danke für die hilfe
-
So habe nun noch ein kleines Problem weswegen ich aber nicht unbedingt einen neuen
Theard eröffnen will... folgender code/* selfmade1.c */ #include <stdio.h> main() { float benzin,km; printf("\n\t\tGefahrene Kilometer : "); scanf("%f",km); printf("\n\t\tBenzinverbrauch pro 100km : "); scanf("%f",benzin); printf("\n Benzinverbrauch ist %f Liter!",benzin*100/km); getchar(); getchar(); }
so wenn ich es compile und aufrufe klappt es gebe die KM zahl ein und dann kommt ein error :
PROGRAMMFEHLER :selfmade1.exe hat Fehler verursacht und wird deswegen geschlossen. Starten sie es neu. Ein Fehlerprotokoll wird erstellt.
wäre erfreut über hilfe
-
Hi
schau dir deine scanf() funktion nochmals etwas genauer an
und ja...schreib bitte "int main(void)" und dann "return 0;" am ende.
das mit dem doppelten getchar hast du ja immernoch drin -..-^
-
/* selfmade1.c */ #include <stdio.h> main() { float benzin,km; printf("\n\t\tGefahrene Kilometer : "); scanf("%f",&km); printf("\n\t\tBenzinverbrauch pro 100km : "); scanf("%f",&benzin); printf("\n Benzinverbrauch ist %f Liter!",benzin*100/km); getchar(); getchar(); }
danke für die hilfe
jetzt müsst es passen oder? , das mit dem doppeltem getchar(); werd ich auch gleich ändern
-
/* selfmade1.c */ #include <stdio.h> int main(void) { float benzin,km; printf("\n\t\tGefahrene Kilometer : "); scanf("%f",&km); printf("\n\t\tBenzinverbrauch pro 100km : "); scanf("%f",&benzin); printf("\n Benzinverbrauch ist %f Liter!",benzin*100/km); return 0; }
danke für die hilfe
jetzt müsst es passen oder? , so jetzt dürfte alles passen oder :p . naja schließt sich jetzt trotzdem mit dem return 0; und int main (void);
grml bin wohl zu dumm dafür... schließt sich nachdem ich die 2 eingaben gemacht habe.
-
ließ doch den ganzen thread nochmals, vielleicht wirst du ja erleuchtet
-
lekos schrieb:
grml bin wohl zu dumm dafür... schließt sich nachdem ich die 2 eingaben gemacht habe.
das mit den beiden 'getchars' war doch nicht so schlecht, ne?
mach doch vor das 'return 0' ein 'for(;; ) getchar();'
dann kannste dein programm (und die konsole) mit'm click auf 'schliessen' beenden.
:xmas2:
-
Ich würde dir vorschlagen vor getchar(); ein fflush(stdin) zu setzen.
Das leert deine Tastaturpuffer und getchar() kriegt keine alten ENTER zeichen, die man bei scanf(); eingibt.MfG ...
-
... schrieb:
Ich würde dir vorschlagen vor getchar(); ein fflush(stdin) zu setzen.
Und ich würde vorschlagen diesen Vorschlag zu ignorieren, weil: http://www.c-plusplus.net/forum/viewtopic.php?t=39349
-
tactx, du hast mein mitgefuehl.
"ten", "...": quark.
-
c.rackwitz schrieb:
tactx, du hast mein mitgefuehl.
Ach, alles halb so wild
-
tactx, stumpft man nicht mit der zeit arg ab? ich haette schon laengst unzaehlige schlaganfaelle...
-
Ach, man darf das nicht so eng sehen. Wenn ich keinen Nerv dazu habe, dann lass ich es einfach.
-
c.rackwitz schrieb:
"ten", "...": quark.
was? das geht...
-
du kannst natuerlich auch aufs oktoberfest gehen, auf einen tisch springen, deinen rucksack in die menge werfen und "fuer allah" rufen.
das geht. kannst du mir glauben.
aber sowas macht man nicht.
konsolenprogramme werden in der konsole gestartet, nicht mit nem doppelklick. deswegen ist das gefrickel mit getch()/getchar()/etc total fehl am platz.
probier mal fflush(stdin) auf einem anderen compiler als von MS. wenn dich das nicht ueberzeugt, mail ich dir den C standard, dann kannst du schmoekern.
-
c.rackwitz schrieb:
du kannst natuerlich auch aufs oktoberfest gehen, auf einen tisch springen, deinen rucksack in die menge werfen und "fuer allah" rufen.
das geht. kannst du mir glauben.schöner gag. dazu muss ich mir aber noch 'n schwarzen rauschebart ankleben und ein weisses mützchen aufsetzen...
c.rackwitz schrieb:
aber sowas macht man nicht.
das haben mir als kind die erwachsenen auch immer gesagt. verstanden hab' ich's aber nie...
c.rackwitz schrieb:
konsolenprogramme werden in der konsole gestartet, nicht mit nem doppelklick. deswegen ist das gefrickel mit getch()/getchar()/etc total fehl am platz.
quatsch. geht beides. ein 'while(1) getchar();' kann man auch prima mit ctrl-c o.ä. abbrechen, das ist schon ok.
c.rackwitz schrieb:
probier mal fflush(stdin) auf einem anderen compiler als von MS.
was soll das bringen? kann man damit den user dazu zwingen, alles einzugeben, was er jemals in die tastatur eines computers hacken wollte?
-
Da dieser Thread von einem extrem ausdauerndem Spammer gehijackt wurde, mach ich hier mal zu.