Namespaces
Variants

fgetc, getc

From cppreference.net
< c ‎ | io
Definiert im Header <stdio.h>
int fgetc ( FILE * stream ) ;
(1)
int getc ( FILE * stream ) ;
(2)
1) Liest das nächste Zeichen aus dem gegebenen Eingabestream.
2) Gleich wie fgetc , außer dass, falls getc als Makro implementiert ist, es den Stream mehrfach auswerten kann, daher sollte das entsprechende Argument niemals ein Ausdruck mit Nebeneffekten sein.

Inhaltsverzeichnis

Parameter

stream - aus dem der Zeichen gelesen wird

Rückgabewert

Bei Erfolg gibt die Funktion das gelesene Zeichen als unsigned char konvertiert zu einem int zurück. Bei Fehler wird EOF zurückgegeben.

Wenn der Fehler durch eine Dateiende-Bedingung verursacht wurde, wird zusätzlich der eof -Indikator gesetzt (siehe feof() ) auf stream . Wenn der Fehler durch einen anderen Fehler verursacht wurde, wird der error -Indikator gesetzt (siehe ferror() ) auf stream .

Beispiel

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
    const char* fname = "/tmp/unique_name.txt"; // or tmpnam(NULL);
    int is_ok = EXIT_FAILURE;
    FILE* fp = fopen(fname, "w+");
    if (!fp)
    {
        perror("File opening failed");
        return is_ok;
    }
    fputs("Hello, world!\n", fp);
    rewind(fp);
    int c; // note: int, not char, required to handle EOF
    while ((c = fgetc(fp)) != EOF) // standard C I/O file reading loop
        putchar(c);
    if (ferror(fp))
        puts("I/O error when reading");
    else if (feof(fp))
    {
        puts("End of file is reached successfully");
        is_ok = EXIT_SUCCESS;
    }
    fclose(fp);
    remove(fname);
    return is_ok;
}

Mögliche Ausgabe:

Hello, world!
End of file is reached successfully

Referenzen

  • C23-Standard (ISO/IEC 9899:2024):
  • 7.21.7.1 Die fgetc-Funktion (S.: TBD)
  • 7.21.7.5 Die getc-Funktion (S.: TBD)
  • C17-Standard (ISO/IEC 9899:2018):
  • 7.21.7.1 Die fgetc-Funktion (S: 240-241)
  • 7.21.7.5 Die getc-Funktion (S: 242)
  • C11-Standard (ISO/IEC 9899:2011):
  • 7.21.7.1 Die fgetc-Funktion (S: 330)
  • 7.21.7.5 Die getc-Funktion (S: 332)
  • C99-Standard (ISO/IEC 9899:1999):
  • 7.19.7.1 Die fgetc-Funktion (S: 296)
  • 7.19.7.5 Die getc-Funktion (S: 297-298)
  • C89/C90 Standard (ISO/IEC 9899:1990):
  • 4.9.7.1 Die fgetc-Funktion
  • 4.9.7.5 Die getc-Funktion

Siehe auch

liest ein Zeichen von stdin
(Funktion)
(entfernt in C11) (C11)
liest eine Zeichenkette von stdin
(Funktion)
schreibt ein Zeichen in einen Dateistrom
(Funktion)
gibt ein Zeichen an einen Dateistrom zurück
(Funktion)
C++ documentation für fgetc , getc