Hallo Zusammen, ich bin ein blutiger Anfänger in c und brauche bitte eure Unterstützung. Kann jemand mir bitte sagen warum ich bei diesem Code: #include<stdio.h> int main() { float output_voltage; printf("give a voltage value:"); scanf("f", &output_voltage); printf("the result is %f\n", output_voltage); } wenn ich z.B output_voltage einen Wert = 4 gebe, 0.000000 als Ergebnis bekomme? Danke
:
Verschoben durch Moderator
Weil du das Ergebnis von scanf() gar nicht ausgewertet hast und folglich auch nicht weißt, ob es überhaupt erfolgreich war.
Jörg W. schrieb: > Weil du das Ergebnis von scanf() gar nicht ausgewertet hast und folglich > auch nicht weißt, ob es überhaupt erfolgreich war. Eben, bei fehlendem Prozentzeichen im Scanf-Format kann da auch nichts eingelesen werden:
1 | scanf("f", &output_voltage); |
Besser:
1 | if (scanf("%f", &output_voltage) == 1) |
2 | {
|
3 | printf("the result is %f\n", output_voltage); |
4 | }
|
5 | else
|
6 | {
|
7 | fprintf(stderr, "wrong input\n"); |
8 | }
|
Schalte den Warnlevel vom Compiler auf Maximum und beachte auch die Warnungen. Bei dem scanf sollte die Warnung etwa „Anzahl Parameter passt nicht zu Formarspecifier“ lauten.
Beitrag #6134663 wurde von einem Moderator gelöscht.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.