Hallo!
Ich habe eine Textdatei, die ungefähr so aussieht:
Diese möchte ich nun mit C++ einlesen. Mein Code sieht bisher wie folgt aus:
Kompilierfehler gibts keine. Wenn ich das Programm aber ausführe, bleibt der irgendwo hängen. Ich hab mir mal was auf die Konsole ausgeben lassen und dann festgestellt, dass nur der erste Block ausgegeben wird, also bis zu der Zeile, die mit einer 5 beginnt. Danach passiert einfach nichts mehr, das Programm bricht aber auch nicht ab. Ich dachte erst Endlosschleife, aber dann müsste ja eigentlich weiterhin was ausgegeben werden. Kann jemand den Fehler finden?
Ich habe eine Textdatei, die ungefähr so aussieht:
Code:
# some comment
1 1 1 1
6 5 2 1
12 0 3 1
2.5 5 3 1
5 3 4 3
4 3 3
7 5 3
10 4 1
Code:
ifstream file("datei.txt");
if (file) {
string line;
double x, y, z;
int p_class;
while (getline(file, line)) {
if (line.empty() || line[0] == '#') //Kommentare und Leerzeilen ignorieren
continue;
istringstream ss(line);
ss >> x;
ss >> y;
ss >> z;
if (!ss.eof()) { //wenn 4 Zahlen in einer Zeile
ss >> p_class;
Point p(x, y, z, p_class);
training.push_back(p);
} else { //wenn 3 Zahlen in einer Zeile
Point p(x, y, z);
test.push_back(p);
}
}
}