Veröffentlicht 1. Juli 200520 j ich habe folgende name.txt name1 vorname1 name2 vorname2 diese will ich jetzt auslesen mit void laden_db() { Adresse db[ANZ]; std::string name; std::string vorname; std::ifstream fin("name.txt"); for (int i=0;i<ANZ;i++) { getline (fin, name, " "); getline (fin, vorname, " "); knd[i].set_name(name); knd[i].set_vorname(vorname); } } aber irgendwie funktioniert das nicht, habe schon soviele versionen probiert...die schleife verändert, mit get.eof() gearbeitet, aber ich schaffs nicht helft mir, thx
1. Juli 200520 j hast du vielleicht einfach fin.open(); nach der Konstruktion des ifstream-Objektes vergessen? gruß mep
2. Juli 200520 j hast du vielleicht einfach fin.open(); nach der Konstruktion des ifstream-Objektes vergessen? Zu welchem Zweck? Der Konstruktor öffnet die Datei sowieso schon, da wird open gar nicht mehr benötigt. Wenn du Daten einfach nur einlesen willst, mach es doch so: #include <iostream> #include <fstream> #include <string> #include <vector> using namepsace std; int main() { vector<string> dateiinhalt; ifstream fin("deinedatei.txt"); for(string line; getline(fin, line); ) { dateiinhalt.push_back(line); } //Zugriff wie auf ein normales Array for(size_t i = 0; i<dateiinhalt.size(); ++i) { cout<<dateiinhalt[i]<<endl; } return 0; }[/PHP]
2. Juli 200520 j schade, auch das hat das problem nicht behoben habe mal den ganzen code angehängt, weil ich ihn nicht einfügen konnte mein problem "lesen" beginnt in zeile 250 http://www.qfile.de/dl/61737/lager_1.txt.html
2. Juli 200520 j Was spricht denn gegen sowas: fin>>name>>vorname; knd[i].set_name(name); knd[i].set_vorname(vorname);[/PHP] Das sollte auch funktionieren. (Habs nicht getestet)
2. Juli 200520 j Jetzt funktioniert das einlesen von name und vorname, aber ich bekomme bei der hausnummer und der plz eine fehlermeldung weil sie ja INT sind. gibt es da noch einen anderen befehl, statt getline? void laden_knd(Adresse knd[]) { std::string name; std::string vorname; std::string strasse; std::string hausnummer; std::string plz; std::string stadt; std::ifstream fin; fin.open("kunden.txt"); do{ for (int i=0;i<ANZ;i++) { if(!fin.eof()) { getline (fin, name, '\t'); getline (fin, vorname, '\t'); getline (fin, strasse, '\t'); getline (fin, hausnummer, '\t'); getline (fin, plz, '\t'); getline (fin, stadt, '\t'); knd[i].set_name(name); knd[i].set_vorname(vorname); knd[i].set_strasse(strasse); knd[i].set_hausnummer(hausnummer); knd[i].set_plz(plz); knd[i].set_stadt(stadt); } } }while(!fin.eof()); system("pause"); fin.close(); }
2. Juli 200520 j Warum führst du eigentlich zwei Threads gleichzeitig zu diesem Thema? Thread geschlossen, hier geht's weiter.
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.