Problem mit printf
-
Hallo zusammen,
ich schreibe zurzeit an einem schönen kleinen Programm in C und an sich funktioniert alles, bis auf die Ausgabe:
Ich möchte die (zuvor definierten) int-Variablen i und j zusammen mit einem Wert in einer Zeile ausgeben lassen.
printf("i\t j\t Wert\n"); for(j=0;j<=jmax;j++){ for(i=0;i<=imax;i++){ printf("%.i\t %.i\t %.5f\n", i, j, Wert[Wertepaar(i,j)]); } }
Die Werte werden auch ausgegeben, allerdings wird jedes mal, wenn j oder i den Wert 0 annehmen, dieser nicht angezeigt, sondern das Feld bleibt dort einfach schwarz; die anderen Werte in der Zeile werden hingegen ganz normal angezeigt.
Ich kann mir das nicht erklären... hat jemand eine Ahnung, woran das liegen könnte?
-
Kennst du die Bedeutung der Zeichen im Formatstring?
Kannst du z.B. hier nachlesen: http://www.cplusplus.com/reference/cstdio/printf/Unter .precision bei .number steht das.
-
Die Bedeutung der Zeichen im Formatstring war mir grob klar, dass man eine .1 eingeben muss, wenn eine 0 ausgegeben werden soll, war mir neu. Jetzt klappts, vielen Dank für die Antwort!
-
Rechenmann schrieb:
Die Bedeutung der Zeichen im Formatstring war mir grob klar, dass man eine .1 eingeben muss, wenn eine 0 ausgegeben werden soll, war mir neu.
Ich glaube, du hast nicht verstanden, was hier die Idee ist. ".1" heisst "eine Nachkommastelle". ".2" hiesse "zwei Nachkommastellen".
-
SeppJ schrieb:
Ich glaube, du hast nicht verstanden, was hier die Idee ist. ".1" heisst "eine Nachkommastelle". ".2" hiesse "zwei Nachkommastellen".
Aber nicht bei Integern.
.precision schrieb:
For integer specifiers (d, i, o, u, x, X): precision specifies the minimum number of digits to be written. If the value to be written is shorter than this number, the result is padded with leading zeros. The value is not truncated even if the result is longer. A precision of 0 means that no character is written for the value 0
....
If the period is specified without an explicit value for precision, 0 is assumed.Der Unterschied zu width ist, dass man so auch die 0 unterdrücken kann.
I.A. braucht man die Angabe bei Integern aber nicht.
-
Upps, da habe ich irgendwie den Teil des Threads ueberlesen, bei dem es um Integer ging.