Hallo Ellen,
[…] Also warum verändert sich die Ausgabe überhaupt?
das (String-)Format der Ausgabe braucht mit dem (String-)Format der Eingabe gar nichts zutun zu haben. Nachdem der Eingabestring als Float interpretiert worden ist, wird er als Bitfolge im Speicher des Rechners abgelegt. Diese Bitfolge ist vom (String-)Format der Eingabe un abhängig. Die Stringfolgen „3.14“, „3.1400“ und „314e-2“ führen alle zu derselben Bitfolge im Speicher (diese hängt z.B. von der Rechnerarchitektur ab). Bei der Ausgabe auf den Bildschirm oder in eine ASCII-Datei kann dem C oder dem C++ Kompiler mitgeteilt werden, welches Ausgabeformat verwendet werden soll.
In C wird man meistens printf() verwenden. Hierbei wird das Ausgabeformat mittels des Formatierungsstrings (erstes Argument der printf-Funktion) kodiert. Nachzulesen z.B. hier:
http://www.cppreference.com/stdio/printf.html
In C++ verwendet man oft Streams zur Ein- und Ausgabe, z.B. das std::cout. Wie man in diesem Fall Ausgaben formatiert, kann man dem folgenden Link entnehmen:
http://www.cppreference.com/cppio/index.html
Für die Ausgabe von Floats sind u.a. die Funktionen setf() und precision() von Bedeutung.
Viele Grüße,
Jens