Frage von Dieter987, 48

Keine Wertausgabe für double in CodeBlocks?

Hallo,

ich habe ein Problem mit den Double Werten bei der Ausgabe erscheint immer nur 0.000000. Integer und Float - Werte funktionieren.

Antwort
von Omnivore08, 48

Da machst du irgendwas falsch.

Kommentar von Dieter987 ,

Integer und Float funktionieren ja. Double ist doch %lf oder nicht?

Kommentar von Omnivore08 ,

also bei mir reicht ein %f

Kommentar von Roderic ,

nur beim Einlesen mittels scanf() oder fscanf().

Bei der Ausgabe ist %lf nicht notwendig und wird entweder ignoriert (warning) oder abgewiesen.

bei der ausgabe genügt %f - die Ausgabefunktion erkennt alleine ob es float oder double ist.

Kommentar von Roderic ,

Der Hintergrund ist der folgende:

scanf (oder fscanf) kriegen die Parameter als pointer übergeben, wissen also nicht welcher Typ das werden soll. Darum muss man es ihnen genau "sagen".

printf kriegt seine Parameter als value übergeben. Der Funktion ist also der genaue Typ zum Zeitpunkt der Compilierung bekannt.

http://stackoverflow.com/questions/4264127/correct-format-specifier-for-double-i...

Kommentar von Dieter987 ,

Habe nun bei VS probiert und da ging es. Wissen Sie ob man dies bei CodeBlocks abändern kann?

Kommentar von Omnivore08 ,

Glaub ich nicht. CodeBlocks ist glaube reines ANSI-C

Studio lässt da paar Freiheiten zu.

Mach es so wie Roderic gesagt hat

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten