Aufgabe 1: Schreibe eine Begrüßungszeile in eine Datei

Schreibe in die Datei info.txt folgende Zeile:

Hallo! Dies ist eine Testdatei.
Musterlösung: Schreibe eine Begrüßungszeile in eine Datei
#include <stdio.h>

int main(void) {
    FILE* f = fopen("info.txt", "w");

    if (f == NULL) {
        printf("Datei konnte nicht geöffnet werden.\n");
        return 1;
    }

    fprintf(f, "Hallo! Dies ist eine Testdatei.\n");

    fclose(f);
    return 0;
}

Aufgabe 2: Schreibe drei Zahlenwerte in eine Datei

Lege ein int-Array für drei Werte an. Weise den drei Werten des Arrays beliebige Werte zu. Speichere dann die Werte die Werte des Arrays jeweils in einer eigenen Zeile in der Datei zahlen.txt. Nutze eine Schleife, um beim Schreiben über das Array zu laufen.

Musterlösung: Schreibe drei Zahlenwerte in eine Datei
#include <stdio.h>

int main(void) {
    FILE* f = fopen("zahlen.txt", "w");

    if (f == NULL) {
        printf("Datei konnte nicht geöffnet werden.\n");
        return 1;
    }

    int werte[] = {10, 20, 30};

    for (int i = 0; i < 3; i++) {
        fprintf(f, "%d\n", werte[i]);
    }

    fclose(f);
    return 0;
}

Aufgabe 3: Schreibe zwei Datensätze in eine CSV-Datei

Erstelle die Datei personen_klein.csv mit folgendem Inhalt:

ID, Name, Alter
1, Tom, 19
2, Lisa, 22
Musterlösung: Schreibe zwei Datensätze in eine CSV-Datei
#include <stdio.h>

int main(void) {
    FILE* f = fopen("personen_klein.csv", "w");

    if (f == NULL) {
        printf("Datei konnte nicht geöffnet werden.\n");
        return 1;
    }

    fprintf(f, "ID, Name, Alter\n");
    fprintf(f, "1, Tom, 19\n");
    fprintf(f, "2, Lisa, 22\n");

    fclose(f);
    return 0;
}

Aufgabe 4: Schreibe N Datensätze aus Arrays in eine CSV-Datei

Es sollen Fahrzeugdaten in einem Programm verarbeitet und gespeichert werden. Für jedes Fahrzeug soll das Kennzeichen, der Hersteller, der Typ, die Leistung und die Anzahl der Sitzplätze gespeichert werden. Lege dafür zunächst eine Struktur mit geeigneten Strukturelementen an. Erstelle ein Array, um mehrere Fahrzeuge mit Hilfe dieser Struktur zu speichern.

Schreibe anschließend die Daten des Arrays in die Datei fahrzeuge.csv.

Musterlösung: Schreibe N Datensätze aus Arrays in eine CSV-Datei
#include <stdio.h>
#include <stdlib.h>

#define MAX_FAHRZEUGE 5
#define MAX_STRING 50

// Strukturdefinition
typedef struct {
    char kennzeichen[MAX_STRING];
    char hersteller[MAX_STRING];
    char typ[MAX_STRING];
    int leistung;          // in PS
    int sitzplaetze;
} Fahrzeug;

int main() {
    // Array mit Beispiel-Fahrzeugen
    Fahrzeug fahrzeuge[MAX_FAHRZEUGE] = {
        {"DD-AB123", "Volkswagen", "Golf", 110, 5},
        {"B-MW456",  "BMW",        "320i", 150, 5},
        {"M-XY789",  "Audi",       "A4",   140, 5},
        {"L-KL321",  "Mercedes",   "C200", 160, 5},
        {"F-HG654",  "Opel",       "Astra",120, 5}
    };

    // Datei öffnen
    FILE* datei = fopen("fahrzeuge.csv", "w");
    if (datei == NULL) {
        printf("Fehler beim Oeffnen der Datei!\n");
        return 1;
    }

    // Kopfzeile schreiben
    fprintf(datei, "Kennzeichen;Hersteller;Typ;Leistung;Sitzplaetze\n");

    // Datensätze mit Schleife in die Datei schreiben
    for (int i = 0; i < MAX_FAHRZEUGE; i++) {
        fprintf(datei, "%s;%s;%s;%d;%d\n",
            fahrzeuge[i].kennzeichen,
            fahrzeuge[i].hersteller,
            fahrzeuge[i].typ,
            fahrzeuge[i].leistung,
            fahrzeuge[i].sitzplaetze);
    }

    // Datei schließen
    fclose(datei);

    printf("Die Daten wurden erfolgreich in fahrzeuge.csv gespeichert.\n");

    return 0;
}

Aufgabe 5: Schreibe formatierte Messwerte in eine Datei

Speichere Messwerte aus einem float-Array formatiert in messwerte.txt:

Messwert 1: 12.45
Messwert 2:  9.10
Messwert 3: 15.99
Musterlösung: Schreibe formatierte Messwerte in eine Datei
#include <stdio.h>

int main(void) {
    float messwerte[] = {12.45f, 9.10f, 15.99f};
    int n = sizeof(messwerte) / sizeof(messwerte[0]);

    FILE* f = fopen("messwerte.txt", "w");

    if (f == NULL) {
        printf("Datei konnte nicht geoeffnet werden.\n");
        return 1;
    }

    for (int i = 0; i < n; i++) {
        fprintf(f, "Messwert %d: %.2f\n", i + 1, messwerte[i]);
    }

    fclose(f);
    return 0;
}

Aufgabe 6: Schreibe ein Array von Strukturen in eine CSV-Datei mit Fehlerprüfung

Definiere eine Struktur für Personen, sodass je Person eine ID, Name, Vorname und Alter gespeichert werden können. Wähle auch geeignete Datentypen.

Erstelle ein Array mit drei Personen und speichere alle Datensätze in personen_out.csv.
Prüfe dabei:

  • ob die Datei geöffnet werden konnte
  • ob fprintf() einen Fehler liefert (negativer Rückgabewert → Fehlermeldung)
Musterlösung:
#include <stdio.h>

struct Person {
    int id;
    char name[30];
    char vorname[30];
    int alter;
};

int main(void) {
    struct Person personen[3] = {
        {1, "Schmidt", "Klaus", 34},
        {2, "Mueller", "Hans", 23},
        {3, "Lehmann", "Ute", 41}
    };

    FILE* f = fopen("personen_out.csv", "w");

    if (f == NULL) {
        printf("Datei konnte nicht geoeffnet werden.\n");
        return 1;
    }

    fprintf(f, "ID, Name, Vorname, Alter\n");

    for (int i = 0; i < 3; i++) {
        int ret = fprintf(
            f, "%d, %s, %s, %d\n",
            personen[i].id,
            personen[i].name,
            personen[i].vorname,
            personen[i].alter
        );

        if (ret < 0) {
            printf("Fehler beim Schreiben von Datensatz %d\n", i + 1);
            fclose(f);
            return 1;
        }
    }

    fclose(f);
    return 0;
}

Nach oben scrollen