kralle.zonk Geschrieben 21. Mai 2010 Geschrieben 21. Mai 2010 Hallo zusammen, ich habe vor kurzem meine ausbildung zum ITA begonnen und wir starten gerade mit C. Ich möchte nun einen kleinen taschenrechner baun der nach zwei zahlen und einem operator fragt. der code: #include <stdio.h> #include <stdlib.h> float eingabea; float eingabeb; char operator; int main(int argc, char *argv[]) { printf("Bitte ersten Wert eingeben: \n"); scanf("%1.02f",&eingabea); printf("Bitte zweiten Wert eingeben: \n"); scanf("%1.02f",&eingabeb); printf("Please choose Operator (+,-,/,*)\n"); scanf("%c",&operator); system("PAUSE"); return 0; } Mein problem ist nun das wenn ich das programm starte man zwar den ersten wert eingeben kann, dann allerdings werden nurnoch die beiden folgenden printfs ausgegeben und die zweite zahl und den operator kann man nicht eingeben. kann mir da einer sagen ob und wie man das ändern kann? thx schonmal Zitieren
Klotzkopp Geschrieben 21. Mai 2010 Geschrieben 21. Mai 2010 "%1.02f" wäre bei printf ein gültiges Formatfeld, aber bei scanf sicher nicht. Was willst du denn damit erreichen? Zitieren
lilith2k3 Geschrieben 22. Mai 2010 Geschrieben 22. Mai 2010 Galileo Computing :: C von A bis Z – 4 Formatierte Ein-/Ausgabe mit »scanf()« und »printf()« Zitieren
kralle.zonk Geschrieben 22. Mai 2010 Autor Geschrieben 22. Mai 2010 danke an euch beide, thx @ Klotzkopp: das 1.02 hatte ich noch garnicht so betrachtet... is absolut unnötig gewesen. thx @ lilith2k3: fflush(stdin); war die lösung Zitieren
Klotzkopp Geschrieben 22. Mai 2010 Geschrieben 22. Mai 2010 thx @ lilith2k3: fflush(stdin); war die lösung fflush(stdin) erzeugt undefiniertes Verhalten und funktioniert nur bei ein paar Compilern. Portabel ist das nicht. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.