printf Formatierungszeichen


Die Formatierung bei printf wird mittels  'Formatierungszeichen' realisiert. Die folgende Tabelle enthält eine Auswahl häufig benutzter Zeichen


	%d %i	Decimal signed integer.
	%o	Octal integer.
	%x %X	Hex integer.
	%u	Unsigned integer.
	%c	Character.
	%s	String.	siehe unten.
	%f	double
	%e %E	double.
	%g %G	double.
	%p	zeiger.
	%n	Number of characters written by this printf.
		No argument expected.
	%%	%. No argument expected.

Die Bezeichner können aus bis zu 6 Teilen bestehen, siehe Tabelle unten. Sie müssen in der hier verwendeten Reihenfolge benutzt werden.

% Flags minimaler Platz Punkt Genauigkeit Typ
erforderlich optional optional optional optional erforderlich

%

% markiert den Beginn der Formatierungssymbole und ist zwingend erforderlich.


Flags (Kennzeichnungen)

Formatbezeichner können mit Hilfe folgender Flags variiert werden


   -      linksbündig.
   0  	  Felder mit 0 ausfüllen (an Stelle von Leerzeichen).
   +	  Vorzeichen einer Zahl immer ausgeben.
   blank  positive Zahlen mit Leerzeichen beginnen.
   # 	  verschiedene Bedeutung:
	  %#o (Oktal) 0 Präfix wird eingefügt.
	  %#x (Hex)   0x Präfix wird bei Werten ungl. Null eingefügt.
	  %#X (Hex)   0X Präfix wird bei Werten ungl. Null eingefügt.
	  %#e         Dezimalpunkt immer anzeigen.
	  %#E         Dezimalpunkt immer anzeigen.
	  %#f         Dezimalpunkt immer anzeigen.
	  %#g         Dezimalpunkt immer anzeigen. Nullen nach dem 
	  	      Dezimalpunkt werden nicht beseitigt.
	  %#G         Dezimalpunkt immer anzeigen. Nullen nach dem
		      Dezimalpunkt werden nicht beseitigt.		

Hier einige Beispiele


  printf(" %-10d \n", number);
  printf(" %010d \n", number);
  printf(" %-#10x \n", number);  
  printf(" %#x \n", number);

Minimale Anzahl an Feldern.

Standardmäßig wird die Anzahl der Felder so gewählt, daß der für die Ausgabe benötigte Platz minimal ist. Im folgenden Beispiel kann man sehen, wie das gemacht wird.


  main()
  {
    int number=5;
    char *pointer="little";

     printf("Here is a number-%4d-and a-%10s-word.\n", number, pointer);
  }
  /*********************************
   *
   *	Program result is:
   *
   * 	Here is a number-   5-and a-    little-word.
   *
   *********************************/

Die Werte werden rechtsbündig ausgegeben. Mit Hilfe des  - flag könnte man sie auch linksbündig ausgeben.


Punkt

Wenn man die  Genauigkeit (d.h. die Anzahl der Nachkommastellen) festlegen will, mit der ein Wert ausgegeben wird, muß man einen Punkt verwenden.


Genauigkeit

	%8.2f

Das heißt z.B., daß ein Bereich von 8 Zeichen für die Ausgabe reserviert werden soll. Die letzten beiden stellen werden für die Nachkommastellen reserviert.

	%.2f

Es wird ein Bereich mit mindestens 2 Zeichen bereitgestellt und für Nachkommastellen reserviert.


Formatbezeichner

Formatbezeichner beschreiben die zur Ausgabe erwarteten Daten. Mit dem Formatbezeichner wird die Formatierungsbeschreibung für einen Wert abgeschlossen. Die folgende Liste wird bei  'printf' ,'sprintf' ,'fprintf' und 'scanf' benutzt.

  1. Außer '%' und 'n' erwarten alle Formatbezeichner, daß sie aus der Parameterliste einen Wert entnehmen können.
  2. Als Parameter muß immer ein Wert (kein Zeiger) zur Verfügung stehen. Eine Ausnahme stellt  %s dar, hier wird erwartet, daß ein Zeiger übergeben wird.

 

Beispiel:


	main()
        {
          int number=5;
	  char *pointer="little";

	  printf("Here is a number %d and a %s word.\n", number, pointer);
	}
	/*********************************
	 *
	 *	Program result is:
	 *
	 * 	Here is a number 5 and a little word.
	 *
	 *********************************/


Anfang Hauptindex Schlüsselwörter Funktionen

Übers.: G. Junghanns