fgetc, getc
Von cppreference.com
| 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
Führen Sie diesen Code aus
#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) | |
| (entfernt in C11)(C11) |
liest einen Zeichenstring aus stdin (Funktion) |
| schreibt ein Zeichen in einen Dateistream (Funktion) | |
| gibt ein Zeichen zurück in einen Dateistream (Funktion) | |
| C++-Dokumentation für fgetc, getc
| |