stringstream float fehler .obj Wavefront
-
Hallo zusammen,
ich habe ein Problem beim einlesen einer .obj Datei mit Hilfe von stringstream.
Hier der Code:
while(!ifs.eof()) { string line; getline(ifs, line); if(line.find("v ") != string::npos) { stringstream iss(line); float f1; iss >> f1; cout << f1; } ...für f1 kommt immer eine -1.07374e+008. D.h. er liest die Werte gar nicht ein?!
-
Dann steht am Beginn der Zeile wohl keine Zahl...
-
Oh, ok.
Ich habe es so verstanden, dass automatisch nach dem nächsten float Wert gesucht wird.
Dann muss ich wohl noch ein bisschen recherchieren

Außer jemand sagt mir gleich die Lösung
Aber davon kann man nicht ausgehen
sonst lernt man schließlich nicht dazu
-
Du musst am besten eine Fehlerbehandlung einbauen:
if(iss >> f1) std::cout << f1; else //Fehlerbehandlung. Bspw. irgendwas werfenDazu wäre es ratsam, dass man die EOF-Abfrage in andere Abfragen auslagert.
Sprich: Dein Code ist redundant. Stattdessen einfach eine deiner Extraktionen überprüfen.Ich habe es so verstanden, dass automatisch nach dem nächsten float Wert gesucht wird.
Ja, so ist es richtig.