0Pricing
C Academy · Lektion

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 einen int zurück.
  • putchar(c) schreibt ein Zeichen.
  • EOF signalisiert das Ende der Eingabe; verwenden Sie die Schleife while ((c = getchar()) != EOF).
  • ungetc kann 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.

Alle Lektionen in diesem Kurs

  1. Zeichen als Integer
  2. Die ctype-Bibliothek
  3. Zeichen lesen
  4. Zeichen-Hilfsfunktionen erstellen
← Zurück zu C Academy