Daten aus Datei an Struct so einfach wie möglich übergeben
-
Hi,
noch eine Frage. Ich hab eine Datei die folgendermassen aufgebaut ist:
123;124,12
122;2;222
325;2;0Jede Zeile ist mit einem Return abgeschlossen. Nun möchte ich wissen wie ich am einfachsten die Werte pro
Zeile einem Struct mit x1,x2,x3 übergeben kann. Das Struct ist im Normalfall dynamisch, wie in meiner
vorherigen Frage.
Danke.
#include was man so braucht struct strdaten { int x1; int x2; int x3; } ifstream dat_ein; string dateiname; main(){ strdaten daten; ////// ++ Datei einlesen +++++++ cout << "Geben Sie den Namen der zu oeffnenden Datei ein: \n\n\t"; cin >> dateiname; cout << endl; dat_ein.open(dateiname.c_str(), ios_base::in); if(!dat_ein) { cerr << "Datei konnte nicht geoeffnet werden!\n"; return 1; } ///// ++ Daten an Struct übergebehn, danach Datei schliessen +++++++ char zeichen; string str1=""; while (!dat_ein.eof()) { dat_ein.get(zeichen); if(zeichen=="\n") { //Hier soll aus einem String z.B. "13;112;44\n" die drei Werte jeweils x1,x2,x3 übergeben werden //daten.x1=13; daten.x2=112; daten.x3=44; //WIE MACHT MAN SOWAS AM LEICHTESTEN ??? //Ich hab schon einige Ideen, aber die wären einfach zu umfangreich, Abfragen, Schleifen, etc. //Normalerweise müßt hier ein dynamisches Struct sein, mir reicht aber schon wenn es für ein Struct geschieht str1=""; } str1.append(zeichen); } dat_ein.close();
-
Mach das einlesen aus der Datei doch so:
fscanf(fp, "%lf %lf %lf", &x, &y, &z)
und dann:
#include <vector> vector<strdaten> meinvector; strdaten lala; lala.blabla = blabla; ... meinvector.push_back(lala);
-
Geht das so nicht auch?
fscanf (PFile, "%2d %2d %2d", &daten.x1, &daten.x2, &daten.x3);
oder so? Wegen den ; in der Datei
fscanf (PFile, "%2d;%2d;%2d", &daten.x1, &daten.x2, &daten.x3);
Die Datei besteht aus:
12;1;21
34;43;1
3;3;4Keine Zahl ist länger als zwei Stellen
-
madking75 schrieb:
Geht das so nicht auch?
Klar, wenn du ints mit ; getrennt einlesen willst, mach es so