====== getchar() ====== ''getchar()'' ist in der ''[[c:lib:stdio:start|stdio]]'' definiert, die in C über ''stdio.h'', bzw in C++ über ''cstdio'' eingebunden wird. ===== Funktion ===== ''getchar()'' liest ein Zeichen von der Standardeingabe und entspricht somit ''[[getc]]'' (''[[stdin]]''). ===== Signatur ===== #include int getchar( void ); **Return value**: Ein unsigned char, der als Integer zurückgegeben wird. ===== Fehlerquellen ===== siehe [[inputtrouble|Fehlerquellen bei Standard-Eingabefunktionen]]. ===== Beispiel ===== Folgendes Programm fragt solange nach, bis ein 'x' eingegeben wurde: #include #include int main() { int c = 0; while( c != 'x' ) { printf( "Bitte geben Sie einen Buchstaben ein: " ); fflush( stdout ); c = getchar(); printf( "Sie gaben folgenden Buchstaben ein: %c\n", c ); } return EXIT_SUCCESS; } **Ausgabe**: Bitte geben Sie einen Buchstaben ein: x Sie gaben folgenden Buchstaben ein: x Hierbei muss nach der Eingabe des Buchstabens die Return-Taste gedrückt werden, damit das Programm auf die Eingabe reagiert. **Aber:** Bitte geben Sie einen Buchstaben ein: a Sie gaben folgenden Buchstaben ein: a Bitte geben Sie einen Buchstaben ein: Sie gaben folgenden Buchstaben ein: Bitte geben Sie einen Buchstaben ein: x Sie gaben folgenden Buchstaben ein: x Was ist passiert? Beim der zweiten Eingabe wird 1 Buchstabe aus dem Eingabestream gelesen, der kein 'x' ist. Damit verbleibt das "Return-Zeichen" im Eingabestream, das notwendig war, damit der Buchstabe überhaupt bemerkt wird. ''getchar()'' reagiert also nicht nur auf ein Zeichen: Bitte geben Sie einen Buchstaben ein: Hallo Sie gaben folgenden Buchstaben ein: H Bitte geben Sie einen Buchstaben ein: Sie gaben folgenden Buchstaben ein: a Bitte geben Sie einen Buchstaben ein: Sie gaben folgenden Buchstaben ein: l Bitte geben Sie einen Buchstaben ein: Sie gaben folgenden Buchstaben ein: l Bitte geben Sie einen Buchstaben ein: Sie gaben folgenden Buchstaben ein: o Bitte geben Sie einen Buchstaben ein: Sie gaben folgenden Buchstaben ein: Bitte geben Sie einen Buchstaben ein: x Sie gaben folgenden Buchstaben ein: x ===== siehe auch ===== [[:|stdio]]: [[getc()]], [[fgetc()]], [[putchar()]]