Datei einlesen und mit Werten arbeiten
-
Hallo Forum,
ich habe mich hier gerade registriert weil ich leicht verzweifelt bin. Ich "lerne" gerade C hobbymässig und hänge gerade an einer Aufgabe.
Es geht um folgendes: Ich will eine Datei einlesen und dann mit bestimmten Werten in der Datei im Programm weiterarbeiten.
#include <stdio.h> int main() { FILE *datei_ein; char datei[80]; printf("\nName der zu oeffnenden Datei> "); gets(datei); datei_ein = fopen(datei,"r"); if (datei_ein != NULL) { printf("\nDatei %s wurde geoeffnet!\n", datei); fclose(datei_ein); } else { printf("\n%s laesst sich nicht oeffnen!\n", datei); } return 0; }
So sieht im Moment mein Programm aus, die Datei wird auch eingelesen ohne Proleme, nur wie mache ich dann weiter?
Nachname,Vorname,Alter Nachname,Vorname,Alter Nachname,Vorname,Alter
Das ist die Datei, es soll zum Beipiel das Alter aller Personen eingelesen werden und dann damit im Programm weiter gearbeitet werden. Ich versuche es jetzt mittlerweile schon seit 2 Tagen, komme aber einfach nicht auf einen Ansatz. Würde mich sehr über einen Tipp oder Ansatz freuen, keine Lösung!
Vielen Dank!
Gruß,
c_newb
-
Im Augenblick liest du die Datei gar nicht.
Du öffnest sie und schließt sie danach gleich wieder.Zum Einlesen von Daten gibt es verschiedene Funktionen.
Die Funktionen, mit der du von stdin (meist die Tastatur) lesen kannst, gibt es auch als Dateifunktionen. Meist mit einem f am Anfang.
Z.B.: http://www.cplusplus.com/reference/cstdio/fscanf/ oder
http://www.cplusplus.com/reference/cstdio/fgets/Zeig mal was du probiert hast, dann können wir dir auch sagen was falsch ist.
-
c_newb schrieb:
ich habe mich hier gerade registriert weil ich leicht verzweifelt bin. Ich "lerne" gerade C hobbymässig und hänge gerade an einer Aufgabe.
Und verwendest dabei ein gewisses Buch aus dem Galileo-Verlag von einem Autor mit den Initialen J.W.? Ich meine, wer in Dreiteufelsnamen - außer komplette Pfuscher wie J.W. - verwendet heutzutage noch
gets
?Gut gemeinter Ratschlag: Wirf das Buch jetzt weg. Alles, was von ihm kommt, ist ein Haufen dampfender Rinderkot, verpackt in semi-funktionierenden Codeabschnitten.
c_newb schrieb:
So sieht im Moment mein Programm aus, die Datei wird auch eingelesen ohne Proleme, nur wie mache ich dann weiter?
Wie DirkB schon sagt: bisher lädst du gar nichts ein. Du lässt dir nur ein Handle auf die Datei erstellen, und das schlägt nicht fehl. Aber vom Einladen - d.h., die Werte im Arbeitsspeicher halten - davon bist du noch n'bisschen entfernt.
Du hast zwei Möglichkeiten:
1. Datei direkt in den Arbeitsspeicher einladen, dann immer nach dem jeweiligen New-Line-Zeichen suchen (hängt vom Betriebssystem ab), und dann in dem jeweiligen Abschnitt nach zwei Kommata suchen und sich dabei Strings zusammenfummeln. Vorteil: relativ schnell und du lernst ein bisschen was dazu. Nachteil: Fehlerträchtig - gerade für einen Anfänger wie dich.
fscanf
. Mehr sage ich nicht dazu, du willst das ja auch selbst mal ergoogeln.