2016-03-20 11 views
-2

Ich muss eine TXT-Datei Zeile für Zeile lesen und den Inhalt jeder Zeile mit einem Komma trennen, so dass ich ein Objekt mit jeder Zeile erstellen kann. Das Problem ist, ich habe herausgefunden, wie man jede Zeile liest und wie man Inhalte mit einem Zeichen (Komma, Punkt, Zeile, etc ..) trennt das Problem ist, wenn ich versuche, eins mit dem anderen zu implementieren, stürzt alles ab.txt für Zeile lesen und durch Kommas in C++ trennen

sollte das Ergebnis Ende sein, dass, wenn in einem Text, den ich habe, zum Beispiel:

135875,John,Smith 
460974,Jane,Doe 

ich jede Zeile und Kiste eine verknüpfte Liste mit Objekten lesen Sie die Informationen der einzelnen Person enthält, so dass nach jeder Zeile zu lesen ich kann den Konstruktor mit den aus der .txt extrahierten Daten aufrufen

user(int ID,String Name,String LastName); 
+0

Ich denke, Sie müssen uns den Code zeigen, der abstürzt. –

+0

Notieren Sie sich in einem verständlichen Englisch einen logischen Prozess, mit dem Sie dies erreichen wollen. Wenn Sie dafür keinen logischen Prozess finden können, handelt es sich nicht um C++, sondern um einen Mangel an logischen, rechnerischen und computerwissenschaftlichen Fähigkeiten. Aber wenn Sie Ihren vorgeschlagenen Algorithmus aufschreiben können und [Ihre Gummiente stimmt mit Ihnen überein] (https://en.wikipedia.org/wiki/Rubber_duck_debugging), dann nehmen Sie einfach das, was Sie geschrieben haben, und es sollte direkt übersetzbar sein zu C++ - Code. –

Antwort

0

Sie zeigen nicht, Ihren Code, so kann ich nicht wissen, was mit Ihrem Code falsch ist. Aber hier ist ein Code-Snippet, um eine Datei zu lesen und die Dinge zu tun, die Sie tun müssen.

#include <iostream> 
#include <fstream> 
#include <sstream> 
#include <string> 

using namespace std; 

int main() 
{ 
    ifstream ifs("test.txt"); 
    string line; 
    while (getline(ifs, line)) 
    { 
     istringstream iss(line); 
     int id; 
     string tmp,name,lastname; 
     getline(iss, tmp, ','); 
     // stoi is only supported in c++11 
     // Alternatively, you can use id = atoi(tmp.c_str()); 
     id = stoi(tmp); 
     getline(iss, tmp, ','); 
     name = tmp; 
     getline(iss, tmp, ','); 
     lastname = tmp; 
     cout << "id: " << id << endl; 
     cout << "name: " << name << endl; 
     cout << "lastname: " << lastname << endl; 
    } 
    ifs.close(); 
    return 0; 
}