C-Programmierung: Wieso %2i und nicht %i und wieso %2.lf statt %lf (%.2lf ist nicht gemeint)
Frage ist oben
Hier nochmal in ausführlich
Ich lerne grade C (Programmiersprache) und da stand in meine Buch drinne als ich ein Durchschnitts temperaturen programm gemacht hab (für ein Monat) %2i und %2.lf
Aber wieso %2i und nicht %i und wieso %2.lf und nicht %lf oder %2lf??? (%.2lf ist nicht gemeint!!!)
3 Antworten
Hallo.
Das ist eher für sowas gedacht, dass man sich als Programmierer nicht groß um die Größen gedanken machen muss, damit aber alles trotzdem schön untereinander steht.
nehmen wir mal an, du hast die Temperaturen 3,4,51,110
Wenn du das mit %i drucken lässt sieht das so aus:
3
4
51
110
mit %3i würde es so aussehen:
3
4
51
110
Es ist also ein Formatierungsvorteil sowas. Mit %2.lf sieht das ausserdem genauso aus. nehmen wir mal an die oberen Werte von mir wären alles gerundete float's:
%3.lf hätte dann genau die gleiche Auswirkung gehabt. Es rundet und gibt den Wert ohne Nachkommastelle an.
Wenn du (z.B.) 2 Kommastellen haben möchtest müsstest du noch die Nachkommastellen angeben. Aber ACHTUNG. Du musst die Gesamtlänge UND das Komma (als den Punkt) mit beachten:
%6.2lf hätte also den gleichen Effekt wie oben, nur mit 2 Nachkommastellen: Beispiel
3,12
4,98
51,34
110,76
Ich hoffe ich konnte dir das ein wenig anschaulich machen. Viel Glück beim weiter proggen :)
http://stackoverflow.com/questions/13913848/what-is-the-2d-in-scanf
Hier wird das mit einem Beispiel erklärt.
Es geht eigentlich darum, die Eingabe auf zwei Stellen zu kürzen.
Wenn ihr den Code wollt könnt ihr ihn gerne haben!