Aufgabe 1: Einlesen eines einzelnen Integers aus einer Datei

Lege eine Datei zahl.txt mit dem folgenden Inhalt an:

42

Lies die Zahl aus der Datei ein und gib sie auf der Konsole aus.

Musterlösung: Einlesen eines einzelnen Integers aus einer Datei
#include <stdio.h>

int main() {
    FILE* f = fopen("zahl.txt", "r");
    if (!f) return 1;

    int zahl;
    fscanf(f, "%d", &zahl);

    printf("Gelesene Zahl: %d\n", zahl);

    fclose(f);
    return 0;
}

Aufgabe 2: Zwei Wörter einlesen

Lege eine Datei woerter.txt mit dem folgenden Inhalt an:

Apfel Birne

Lies die beiden Wörter ein und gib sie aus.

Musterlösung: Zwei Wörter einlesen
#include <stdio.h>

int main() {
    FILE* f = fopen("woerter.txt", "r");
    if (!f) return 1;

    char w1[20], w2[20];

    fscanf(f, "%19s %19s", w1, w2);

    printf("Wort 1: %s\n", w1);
    printf("Wort 2: %s\n", w2);

    fclose(f);
    return 0;
}

Aufgabe 3: Produktname und Preis einlesen

Lege eine Datei produkt.txt mit dem folgenden Inhalt an:

Monitor 129.99

Lies den Produktnamen und Preis ein.

Musterlösung: Produktname und Preis einlesen
#include <stdio.h>

int main() {
    FILE* f = fopen("produkt.txt", "r");
    if (!f) return 1;

    char name[50];
    float preis;

    fscanf(f, "%49s %f", name, &preis);

    printf("Produkt: %s | Preis: %.2f Euro\n", name, preis);

    fclose(f);
    return 0;
}

Aufgabe 4: CSV-Zeilen mit Zahlen einlesen

Lege eine Datei temperaturen.csv mit dem folgenden Inhalt an:

Tag, Temp
1, 21.5
2, 23.1
3, 19.8

Lies die drei Temperaturwerte ein und erstelle eine Ausgabe pro Zeile.

Musterlösung: CSV-Zeilen mit Zahlen einlesen
#include <stdio.h>

int main() {
    FILE* f = fopen("temperaturen.csv", "r");
    if (!f) return 1;

    char kopf[100];
    fgets(kopf, sizeof(kopf), f);

    int tag;
    float temp;

    while (fscanf(f, "%d , %f", &tag, &temp) == 2) {
        printf("Tag %d: %.1f °C\n", tag, temp);
    }

    fclose(f);
    return 0;
}

Aufgabe 5: Einlesen von Städten mit Leerzeichen im Namen

Lege eine Datei staedte.csv mit dem folgenden Inhalt an:

Berlin 3.6
New York 8.8
San Francisco 4.9

Lies Stadtname (mit Leerzeichen!) und Einwohnerzahl (in Millionen). Verwende im fscanf() eine Formatbeschreibung, die bis zur letzten Zahl liest.

Musterlösung: Einlesen von Städten mit Leerzeichen im Namen
#include <stdio.h>

int main() {
    FILE* f = fopen("staedte.csv", "r");
    if (!f) return 1;

    char stadt[50];
    float einwohner;

    while (fscanf(f, " %49[^0-9] %f", stadt, &einwohner) == 2) {
        printf("Stadt: %s | Einwohner: %.1f Mio\n", stadt, einwohner);
    }

    fclose(f);
    return 0;
}

Aufgabe 6: Einlesen einer Liste von Artikeln (CSV mit Strings, Ints, Floats)

Lege eine Datei artikel.csv mit dem folgenden Inhalt an:

ID, Bezeichnung, Bestand, Preis
1, Tastatur, 50, 19.99
2, Maus, 120, 14.49
3, USB-Kabel, 300, 4.89

Lies alle Datensätze ein und gib sie formatiert aus.

Musterlösung: Einlesen einer Liste von Artikeln (CSV mit Strings, Ints, Floats)
#include <stdio.h>

int main() {
    FILE* f = fopen("artikel.csv", "r");
    if (!f) return 1;

    char kopf[200];
    fgets(kopf, sizeof(kopf), f);

    int id, bestand;
    char name[40];
    float preis;

    while (fscanf(f, "%d , %39[^,] , %d , %f",
                  &id, name, &bestand, &preis) == 4) {

        printf("ID: %d | %-12s | Bestand: %d | Preis: %.2f€\n",
               id, name, bestand, preis);
    }

    fclose(f);
    return 0;
}

Nach oben scrollen