printf¶
printf gibt Daten in formatierter Form im Kommandofenster aus.
- rsNChars = printf(ssFormat, arg1, ...)
Returnwert
rsNChars ist die Anzahl der ausgegebenen Zeichen oder -1 wenn ein Fehler aufgetreten ist.
Parameter
- ssFormat
ssFormat ist ein skalarer String mit eingebetteten Formatierungzeichen, der bestimmt, wie die folgenden Argumente arg1 bis argn ausgegeben werden. Ein Formatierungfeld hat folgenden Aufbau:
%{flags}[width][.precision][m|l|L]type
- %
Das Prozentzeichen beginnt ein Formatierungfeld. Um ein Prozentzeichen auszugeben muss
%%
geschrieben werden.- flags
Ein flag ist eins der folgenden Zeichen:
Wert
Bedeutung
-
bewirkt, daß die Ausgabe linksbündig erfolgt.
+
es wird ein „+“ oder „-“ - Zeichen vor die Ausgabe gesetzt.
#
bewirkt, daß bei den Formatierungen „e“, „E“, „f“, „g“, „G“ immer auch der Dezimalpunkt ausgegeben wird. Bei der „g“ oder „G“-Formatierung werden abschliesende Nullen ausgegeben. Bei der „x“ oder „X“-Formatierung wird der Ausgabe ein „0x“ oder „0X“ vorangestellt wird, falls der Wert ungleich 0 ist. Bei der „o“-Formatierung werden führende Nullen ausgegeben.
(blank) „ „
bewirkt, daß eine positive numerische Ausgabe mit einem Leerzeichen eingeleitet wird.
0
bewirkt, dass links mit Nullen aufgefüllt wird.
- width
width ist eine ganze Zahl, die die minimale Feldbreite angibt. Wenn die Ausgabe zu breit ist, wird die Feldbreite automatisch verbreitert.
- .precision
precision ist ein Punkt gefolgt von einer ganzen Zahl, der bei Zahlenausgaben die Anzahl der auszugebenden Nachkommastellen ausgibt. Folgt dem Punkt keine Zahl, wird 0 angenommen. Bei Strings („s“-Formatierung) werden so viele Zeichen ausgegeben wie precision angibt.
- m
bewirkt, daß die Ausgabe bei Matrizen und Spaltenvektoren zeilenweise erfolgt.
- l,L
Die Zeichen
"l"
und"L"
werden ignoriert.- type
type kann folgende Werte annehmen:
Wert
Bedeutung
f
Das Argument ist reell. Es wird in der Form [-]dddd.dddddd ausgegeben.
e, E
Das Argument ist reell. Es wird in der Form [-]dddd.dddddd“e“ddd ausgegeben. Bei einem großen „E“ wird ein großes „E“ als Exponentialzeichen ausgegeben.
g, G
Das Argument ist reell. Die Ausgabe erfolgt im „e“ oder „E“-Format wenn der Exponent des Arguments kleiner als 3 oder größer als die Genauigkeit ist. Ansonsten erfolgt die Ausgabe im „f“-Format.
i, d, u
Das Argument ist reell. Es wird vor der Ausgabe in eine ganze Zahl umgewandelt.
x, X, p
Das Argument ist reell. Es wird vor der Ausgabe in eine ganze Zahl umgewandelt und als Hexadezimalzahl ausgegeben.
o
Das Argument ist reell. Es wird vor der Ausgabe in eine ganze Zahl umgewandelt und als Oktalzahl ausgegeben.
c
Das Argument ist reell. Es wird vor der Ausgabe in ein ASCII-Zeichen umgewandelt.
s
Das Argument ist ein String.
Kommentar
Alle Typen bis auf den ("s"
-Typ) verlangen reelle Argumente.
Beispiel
* a = rand(1,5) * 100
* printf("%10d\n%10.2f\n%10.2e\n%10.2g\n", a, a, a, a)
86 8 43 84 98
86.18 8.30 43.97 84.32 98.93
8.62e+01 8.30e+00 4.40e+01 8.43e+01 9.89e+01
86 8.3 44 84 99
204.0000
// 204 ist die Anzahl der ausgegebenen Zeichen.
id-1871575