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;
}