MrKrasserAlsDu Geschrieben 1. Juli 2005 Geschrieben 1. Juli 2005 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
MrKrasserAlsDu Geschrieben 1. Juli 2005 Autor Geschrieben 1. Juli 2005 oder wäre es vielleicht einfacher, wenn die txt ein anderes format hätte
Mephisto81 Geschrieben 1. Juli 2005 Geschrieben 1. Juli 2005 hast du vielleicht einfach fin.open(); nach der Konstruktion des ifstream-Objektes vergessen? gruß mep
PuppetMaster Geschrieben 2. Juli 2005 Geschrieben 2. Juli 2005 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]
MrKrasserAlsDu Geschrieben 2. Juli 2005 Autor Geschrieben 2. Juli 2005 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
PuppetMaster Geschrieben 2. Juli 2005 Geschrieben 2. Juli 2005 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)
MrKrasserAlsDu Geschrieben 2. Juli 2005 Autor Geschrieben 2. Juli 2005 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(); }
Klotzkopp Geschrieben 2. Juli 2005 Geschrieben 2. Juli 2005 Warum führst du eigentlich zwei Threads gleichzeitig zu diesem Thema? Thread geschlossen, hier geht's weiter.
Empfohlene Beiträge