int fputc(int c, FILE *fp);
Möchte man zeichenweise in eine Datei schreiben, verwenden wir fputc (File Put Char). In diesem Beispiel wird das Alphabet in Großbuchstaben in die Datei abc.txt geschrieben. Im Parameter c wird das zu schreibende Zeichen als ASCII-Code übergeben. Der Parameter fp (filepointer) gibt den Datei-Zeiger an.
Der Rückgabewert ist das geschriebene Zeichen oder bei einem Fehler EOF, was unten erklärt wird.
FILE *fp; int i; fp = fopen("abc.txt", "w"); if(fp == NULL) { printf("Datei konnte nicht geoeffnet werden.\n"); }else { for(i=0; i<26; i++) { fputc(i+65, fp); } // Zeilenumbruch hinzufuegen fputc(10, fp); fclose(fp); }
int fgetc(FILE *fp);
Mit File Get Char können wir eine Datei Zeichen für Zeichen auslesen. Dies soll im nächsten Beispiel anhand der oben erstellten Datei abc.txt dargestellt werden. In diesem Zusammenhang lernen wir noch das Ende-Zeichen einer Datei kennen: EOF – End Of File. Nachdem wir ein Zeichen gelesen haben, rutscht der Datei-Zeiger eine Position weiter. Wenn wir nun den Zeiger mit EOF vergleichen, erfahren wir, ob wir am Ende der Datei angelangt sind. In folgendem Beispiel wird solange ausgelesen, bis die Funktion den Wert End Of File liefert. Der Rückgabewert ist der ASCII-Code des gelesenen Zeichens bzw. EOF bei Fehler oder Dateiende.
FILE *fp; int i, temp; fp = fopen("abc.txt", "r"); if(fp == NULL) { printf("Datei konnte nicht geoeffnet werden.\n"); }else { // komplette Datei zeichenweise ausgeben while((temp = fgetc(fp))!=EOF) { printf("%c ", temp); } fclose(fp); } printf("\n");
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z