printf (formatstring, argument1, argument2, ...);
Mit der Bibliotheksfunktion printf werden formatierte Ausgaben auf den Bildschirm vorgenommen, in welche auch variable Zahlenwerte und Strings eingebunden werden können.
Der Formatstring wird Zeichen für Zeichen gelesen und auf den Bildschirm ausgegeben, bis ein %-Zeichen auftaucht. Daraufhin wird der hinter dem %-Zeichen folgende Ausdruck ausgewertet und falls nötig das nächste Argument aus der Argumentliste entsprechend der dem %-Zeichen folgenden Formatangabe ausgegeben.
Wichtigste Umwandlungszeichen für printf:
Umwandlungs- zeichen |
Ausgabeform des nächsten Arguments |
Erwarteter Datentyp des Arguments |
%d |
Dezimaler Integerwert mit Vorzeichen. |
int, unsigned, char |
%u |
Dezimaler Integerwert ohne Vorzeichen. |
int, unsigned, char |
%x |
Hexadezimaler Integerwert. |
int, unsigned, char |
%c |
Einzelnes Zeichen. |
char, int, unsigned |
%s |
Zeichenkette (mit Nullbyte abgeschlossen). |
Zeiger auf char, char-Array |
%f |
Fliesskommawert |
double |
%e |
Fliesskommawert in Exponentialddarstellung |
double |
%% |
Es erfolgt keine Umwandlung. Das Zeichen % als solches wird ausgegeben. |
Auf das %-Zeichen
können noch etliche Formatierungsparameter folgen, wie z.B. die zu verwendende
Stellenzahl, Anzahl Nachkommastellen etc.
Eine genaue Auflistung der möglichen
Umwandlungen kann im Buch Programmieren in C, Zweite Ausgabe
auf Seite 243 nachgelesen werden.
Beispiel:
int i;
double f;
printf ("Zaehler=%d, Fliesskommazahl=%f\n", i, f);
scanf (formatstring, &variable1, &variable2, ...);
Die Funktion scanf arbeitet genau umgekehrt zu printf. Im Formatstring werden die erforderlichen Datentypen definiert, welche in den Variablen, deren Adressen dem Formatstring folgen, abgelegt werden.
Achtung: Es müssen immer die Adressen (&) der Variablen angegeben werden!
Sind im Formatstring etwaige Zeichen ausser Leerzeichen und Tabulatoren enthalten, so müssen diese Zeichen bei der Eingabe mit eingegeben werden.
Wichtigste Umwandlungszeichen für scanf:
Umwandlungs- zeichen |
Eingabeform des nächsten Arguments |
Erwarteter Datentyp der Zielvariablen |
%d |
Dezimaler Integerwert mit Vorzeichen. |
Adresse einer int- oder unsigned-Variablen |
%u |
Dezimaler Integerwert ohne Vorzeichen. |
Adresse einer int- oder unsigned-Variablen |
%x |
Hexadezimaler Integerwert. |
Adresse einer int- oder unsigned-Variablen |
%s |
Zeichenkette (mit Nullbyte abgeschlossen). |
Zeiger auf char, char-Array |
%f |
Fliesskommawert |
Adresse einer float-Variablen |
%lf |
Fliesskommawert |
Adresse einer double-Variablen |
%e |
Fliesskommawert in Exponentialddarstellung |
Adresse einer float-Variablen |
Beispiele:
int i;
double f;
int day, month, year;
scanf ("%d %lf", &i, &f);
printf ("Bitte Datum eingeben (TAG-MONAT-JAHR) : ");
scanf ("%u-%u-%u", &day, &month, &year);
|