Motivation: In diesem Abschnitt werden einige Funktionen zur Ein- bzw. Ausgabe von Daten vorgestellt, die zum Schreiben einfacher Programme nützlich aber mit den bisher behandelten Sprachmitteln noch nicht vollständig erklärbar sind. |
Eingabe: c=getchar();Formatierte Ausgabe
Ausgabe: putchar(c);
BEISPIELE/b15a.c: /* Dieses Programm liest zeichenweise von der Standardeingabe */ /* ( bis zum Erreichen der End-Of-File-Bedingung - EOF ) */ /* und gibt diese Zeichen wieder in die Standardausgabe aus. */ #include <stdio.h> main() { int c; while(( c = getchar()) != EOF) /* beachte Klammern ! */ putchar(c); }
printf("format_string", arg1, arg2, ...);Formatierte Eingabe
format_string: text einfach ausgeben % Formatausgabe: konvertiert zugehöriges Argument %d dezimal: Integer %s Zeichenkette %g float-Zahl %lf double-Zahl
VERBATIM/b15a: int i; i=123; /* Ausgabe*/ printf("i=%d",i); |i=123| printf("i=%6d",i); |i= 123| printf("z=%.1g",3.24); |z=3.2| printf("%6s","text"); | text| printf("%-6s","text"); |text |
scanf("format_string", & arg1, ...);
format_string: ohne Text Formate ähnlich Ausgabe
VERBATIM/eingabe: int n,i; double d; char c; n=scanf("%d %lf %c",&i,&d,&c); Eingabe: 5 3.7e-2x Ergebnis: i:=5 d:=0.037 c:='x' /* kein Trennzeichen! */ n:=3 /* Anzahl Konvertierungen */
BEISPIELE/b15b.c: #include <stdio.h> main() /* Tabelle der Quadratzahlen */ { int anf, ende, spanz; printf("Berechnung der Quadratzahlen von: "); scanf("%d", &anf); printf("Berechnung der Quadratzahlen bis: "); scanf("%d", &ende); printf("Anzahl der Spalten fuer Ausgabe : "); scanf("%d", &spanz); putchar('\n'); while(anf <= ende) { printf("%3d x %3d = %6d ", anf, anf, anf*anf); if (anf % spanz) printf(" "); else putchar('\n'); anf = anf + 1; } putchar('\n'); }
BEISPIELE/b15c.c: #include <stdio.h> main() /* formatierte Ein und Ausgabe */ /* nach Aufruf b15 Eingabe: "mit 18 ab ins 08.15" */ { int d,x; float f; char c, cf[5]; scanf("mit%d%x%2s%c%f", &d, &x, cf, &c, &f); printf("%.2f %x %d %s %c\n", f, x, d, cf, c); }