Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

fgetc - Zeichen aus einer Datei einlesen

&pagelevel(4)&pagelevel

Definition

#include <stdio.h>

int fgetc(FILE *dz);

fgetc liest ein Zeichen aus der Datei mit Dateizeiger dz von der aktuellen Lese-/Schreibposition.
fgetc verhält sich wie getc (als Funktion).

Returnwert

Ganzzahl

gelesenes Zeichen als positiver integer-Wert, bei Erfolg.


EOF

bei Fehler oder Dateiende.

Hinweise

Wenn Sie in Ihrem Programm einen Vergleich verwenden, wie etwa

while((c = fgetc(dz)) != EOF)

dann muss die Variable c immer als integer-Größe vereinbart werden. Wenn Sie c als char definieren, wird die Bedingung EOF aus folgendem Grund nie erfüllt: -1 wird nach char ’0xFF’ (also +255) konvertiert, EOF ist jedoch als -1 definiert.

Wenn fgetc von der Standardeingabe stdin liest und EOF das Einlese-Endekriterium ist, erreichen Sie die EOF-Bedingung durch folgende Maßnahmen an der Datensichtstation:
Taste K2 drücken, die Systemkommandos EOF und RESUME-PROGRAM eingeben.

Bei Textdateien mit der Zugriffsart SAM und variabler Satzlänge, für die zusätzlich eine maximale Satzlänge angegeben ist, gilt: Wenn bei fopen die Angabe split=no gemacht wurde, werden Sätze maximaler Länge beim Lesen nicht mit dem darauffolgenden Satz verkettet. Standardmäßig oder mit der Angabe split=yes wird beim Lesen eines Satzes mit maximaler Satzlänge angenommen, dass es sich bei dem Folgesatz um die Fortsetzung dieses Satzes handelt, und die Sätze werden verkettet.

Bei Textdateien mit der Zugriffsart SAM oder ISAM liefert fgetc am Ende eines Satzes ein zusätzliches Neue-Zeile Zeichen ('\n'). In diesem Fall liefert ein anschließender Aufruf von _fnlinserted einen Wert ungleich 0. In allen anderen Fällen liefert ein anschließender Aufruf von _fnlinserted den Wert 0.

Beispiel

Folgendes Programm liest aus maximal 10 beim Aufruf übergebenen Dateien nacheinander jeweils ein Zeichen und gibt es auf Standardausgabe aus.

#include <stdio.h>
FILE *fp[10], **app;
int main(int argc, char *argv[])
{
  int c, i;
  for (i = 1; i < argc && i <= 10; i++)
       fp[i-1] = fopen(argv[i], "r");
  app = fp;
  while(*app != NULL)
       {
         c = fgetc(*app++);
         putchar(c);
       }
  putchar('\n');
  return 0;
}

Siehe auch  getc, getchar, ungetc, fopen, fopen64, _fnlinserted