Namensräume
Varianten
Aktionen

fgetc, getc

Von cppreference.com
< c‎ | io
 
 
Datei-Ein-/Ausgabe
Typen und Objekte
        
Funktionen
Datei-Zugriff
(C95)
Unformatierte Ein-/Ausgabe
(C95)(C95)
(C95)
(C95)(C95)
(C95)
(C95)

Formatierte Eingabe
Direkte Ein-/Ausgabe
Formatierte Ausgabe
Dateipositionierung
Fehlerbehandlung
Operationen auf Dateien
 
Definiert in Header <stdio.h>
int fgetc( FILE* stream );
(1)
int getc( FILE* stream );
(2)
1) Liest das nächste Zeichen aus dem gegebenen Eingabestrom.
2) Gleiche Funktion wie fgetc, mit der Ausnahme, dass wenn getc als Makro implementiert ist, es den stream mehr als einmal auswerten kann. Daher sollte das entsprechende Argument niemals ein Ausdruck mit Seiteneffekten sein.

Inhalt

[bearbeiten] Parameter

stream - um das Zeichen zu lesen aus

[bearbeiten] Rückgabewert

Bei Erfolg wird das erhaltene Zeichen als unsigned char, konvertiert zu einem int, zurückgegeben. Bei einem Fehler wird EOF zurückgegeben.

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

[bearbeiten] 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

[bearbeiten] Referenzen

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

[bearbeiten] Siehe auch

liest ein Zeichen aus stdin
(Funktion) [bearbeiten]
(entfernt in C11)(C11)
liest einen Zeichenstring aus stdin
(Funktion) [bearbeiten]
schreibt ein Zeichen in einen Dateistream
(Funktion) [bearbeiten]
gibt ein Zeichen zurück in einen Dateistream
(Funktion) [bearbeiten]
C++-Dokumentation für fgetc, getc