C-Programmierung

Gepufferte Ein- und Ausgabe

Standard-Header | | Ausgabe mit printf

Gepufferte Eingabe mit getchar()

  • Eingebene Zeichen werden nicht sofort an das Programm übergeben, sondern vom Betriebssystem in einem internen Puffer abgelegt.
  • Erst nachdem die Eingabe-Taste (Enter, Return) gedrückt wird, beginnt das Programm mit dem Lesen aus dem Puffer. Auch die Eingabe Taste (‘\n’) wird noch am Ende des Puffers gespeichert.
char c;

printf("enter a character: ");
c=getchar();                   /* read character */
while (c!='\n') c=getchar();   /* dummy-getchar() */
  • Ãœberprüfen eines Zeichens mit <ctype.h>
if (isdigit(c)) printf("digit 0..9");
if (isxdigit(c)) printf("hex-digit 0..9, a..f, A..F");
if (isalpha(c)) printf("upper or lower-case letter a..z, A..Z");
if (isalnum(c)) printf("alphanumeric 0..9, a..z, A..Z");

c=tolower(c); /* convert to lower-case letter a..z */
c=toupper(c); /* convert to upper-case letter A..Z */

Interner Puffer auch bei scanf()

  • Auch beim zeilenweisen Einlesen wird erst der interne Puffer bis zur Eingabe-Taste gefüllt.
int n;

printf("enter a number: ");
scanf("%d", &n);             /* read number */
while (getchar()!='\n');     /* dummy-getchar() */
  • Die Funktion scanf() überliest anfänglich automatisch sämtlichen white-space, so dass bei mehreren aufeinanderfolgenden Eingaben der dummy-getchar() nur abschliessend notwendig ist:
scanf("%d", &n1);
scanf("%d", &n2);
...
while (getchar()!='\n');


Standard-Header | | Ausgabe mit printf

Options: