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.

Siehe auch

fprintf, sprintf, ltostr

id-1871575