In C können Dateien gelesen, geschrieben und manipuliert werden.
Diese Lektion behandelt die grundlegende Dateiverarbeitung mit FILE*, fopen, fclose, fscanf, fprintf und anderen Funktionen.
fopen geöffnet und mit fclose wieder geschlossen.
FILE *fp;
fp = fopen("datei.txt", "r"); // Datei im Lese-Modus öffnen
if(fp == NULL) {
perror("Fehler beim Öffnen");
return 1;
}
// Datei verarbeiten
fclose(fp); // Datei schließen
"r" – Lesen"w" – Schreiben (existierende Datei wird überschrieben)"a" – Anhängen"rb", "wb", "ab" – Binärmoduschar line[100];
while(fgets(line, sizeof(line), fp) != NULL) {
printf("%s", line);
}
fgets liest eine Zeile inkl. ZeilenumbruchNULL erkanntfprintf oder zeichenweise mit fputc.
FILE *fp = fopen("out.txt", "w");
if(fp != NULL) {
fprintf(fp, "Zahl: %d\n", 42);
fclose(fp);
}
fseek und ftell kann an eine bestimmte Position in der Datei gesprungen werden.
fseek(fp, 0, SEEK_END); // ans Ende der Datei springen
long size = ftell(fp); // aktuelle Position = Dateigröße
fseek(fp, 0, SEEK_SET); // zurück zum Anfang
FILE *fp = fopen("nicht_existiert.txt", "r");
if(fp == NULL) {
perror("Datei konnte nicht geöffnet werden");
return 1;
}
FILE* geöffnet und geschlossenfgets, Schreiben mit fprintffseek und ftell