Zeichen lesen
getchar und putchar
Zeichen lesen ist eine kostenlose C Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des C Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der C Academy-Kurs umfasst insgesamt 4 Lektionen.
Einzelne Zeichen lesen
C stellt getchar() bereit, um jeweils ein Zeichen aus der Standardeingabe zu lesen, sowie putchar(), um jeweils ein Zeichen in die Standardausgabe zu schreiben.
Beide Funktionen befinden sich in <stdio.h>.
#include <stdio.h>
int main(void) {
putchar('H');
putchar('i');
putchar('\n');
return 0;
}Grundlagen von putchar
putchar(c) schreibt das Zeichen c und gibt das geschriebene Zeichen zurück oder bei einem Fehler EOF.
Dies ist die einfachste Möglichkeit, ein einzelnes Byte auszugeben.
#include <stdio.h>
int main(void) {
for (char c = 'A'; c <= 'E'; c++) {
putchar(c);
}
putchar('\n');
return 0;
}getchar gibt int zurück
getchar() gibt einen int und keinen char zurück. Das ist wichtig, weil die Funktion EOF zurückgeben können muss, einen Wert, der sich von jedem tatsächlichen Zeichen unterscheidet.
Speichern Sie das Ergebnis immer in einem int.
#include <stdio.h>
int main(void) {
int c = 'A';
printf("Stored value: %d\n", c);
return 0;
}Was ist EOF
EOF steht für „End Of File“ (Dateiende). getchar() gibt diesen Wert zurück, wenn keine weiteren Eingaben vorhanden sind.
Typischerweise ist dies der Wert -1. Deshalb verwendet getchar den Typ int, damit er nicht mit dem Byte 255 verwechselt werden kann.
#include <stdio.h>
int main(void) {
printf("EOF has value %d\n", EOF);
return 0;
}Das Muster der Leseschleife
Das klassische Muster liest Zeichen, bis EOF erreicht wird. Da hier keine interaktive Eingabe erfolgt, endet die Schleife sofort; dies ist jedoch die standardmäßige Struktur.
- Weisen Sie den Wert innerhalb der Bedingung zu.
- Vergleichen Sie ihn mit
EOF.
#include <stdio.h>
int main(void) {
int c;
while ((c = getchar()) != EOF) {
putchar(c);
}
printf("Reached end of input\n");
return 0;
}Zeichen zählen
Eine häufige Aufgabe besteht darin zu zählen, wie viele Zeichen gelesen wurden. Erhöhen Sie dazu einen Zähler innerhalb der Leseschleife.
#include <stdio.h>
int main(void) {
int c;
long count = 0;
while ((c = getchar()) != EOF) {
count++;
}
printf("Read %ld characters\n", count);
return 0;
}Ausgabe in Großbuchstaben
Sie können jedes Zeichen vor der Ausgabe umwandeln. Hier wird jedes gelesene Zeichen mithilfe von toupper in einen Großbuchstaben umgewandelt.
#include <stdio.h>
#include <ctype.h>
int main(void) {
int c;
while ((c = getchar()) != EOF) {
putchar(toupper(c));
}
return 0;
}Zeilen zählen
Durch das Zählen von Zeilenumbruchzeichen können Sie ermitteln, wie viele Zeilen gelesen wurden. Vergleichen Sie jedes Zeichen mit '\n'.
#include <stdio.h>
int main(void) {
int c;
int lines = 0;
while ((c = getchar()) != EOF) {
if (c == '\n') lines++;
}
printf("Lines: %d\n", lines);
return 0;
}Ein Zeichen zurückstellen
ungetc(c, stdin) stellt ein Zeichen im Eingabestream zurück, sodass der nächste Lesevorgang es erneut zurückgibt.
Das ist nützlich, wenn Sie beim Scannen ein Zeichen zu viel gelesen haben.
#include <stdio.h>
int main(void) {
ungetc('X', stdin);
int c = getchar();
printf("Got back: %c\n", c);
return 0;
}getchar vs. scanf
getchar bietet Ihnen präzise Kontrolle auf Byteebene, während scanf formatierte Eingaben verarbeitet.
Für die Verarbeitung Zeichen für Zeichen, etwa bei Filtern und Tokenizern, ist getchar das geeignete Werkzeug.
#include <stdio.h>
int main(void) {
int c = '5';
if (c >= '0' && c <= '9') {
printf("It is a digit: %c\n", c);
}
return 0;
}Ein einfaches Filter-Grundgerüst
Filter lesen Eingaben, wandeln sie um und schreiben sie in die Ausgabe. Dieses Grundgerüst entfernt alle Leerzeichen aus dem Eingabestream.
#include <stdio.h>
int main(void) {
int c;
while ((c = getchar()) != EOF) {
if (c != ' ') {
putchar(c);
}
}
return 0;
}Schnelltest
Testen Sie Ihr Verständnis vom Lesen von Zeichen.
Zusammenfassung
Sie haben gelernt, Zeichen zu lesen und zu schreiben:
getchar()liest ein Zeichen und gibt einenintzurück.putchar(c)schreibt ein Zeichen.EOFsignalisiert das Ende der Eingabe; verwenden Sie die Schleifewhile ((c = getchar()) != EOF).ungetckann ein Zeichen in den Stream zurückstellen.
Häufig gestellte Fragen
Ist die Lektion „Zeichen lesen“ kostenlos?
Ja — der vollständige Text von „Zeichen lesen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des C Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der C Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Zeichen lesen“?
getchar und putchar Du übst C Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um C Academy zu starten?
Keine Vorkenntnisse erforderlich. C Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.
Wie lange dauert die Lektion „Zeichen lesen“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser C Academy-Lektion Code schreiben und ausführen?
Ja. Jede C Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.