Wie kann ich nur bestimmte Werte einer Zeile einlesen???
-
Hallo
ich möchte gerne eine Datei einlesen, was ich auch schon geschafft habe.Jedoch wird mir zuviel ausgegeben.
Der Aufbau der Zeilen der txt-Datei:
x y z unnötig unnötig unnötig unnötig unnötig unnötig unnötig unnötig unnötig
x y z unnötig unnötig unnötig unnötig unnötig unnötig unnötig unnötig unnötig
x y z unnötig unnötig unnötig unnötig unnötig unnötig unnötig unnötig unnötig
...Also wie man vielleicht schon sieht, brauch ich nur die xyz-Werte aus jeder Zeile.
Wie kann ich das machen.Die Werte sind mit einem Lehrzeichen getrennt.Achso ich nutze Vektoren...
Danke für eure Antworten
-
#include <string> #include <vector> #include <fstream> struct Point { int x; int y; int z; }; int main() { // Die Datei. std::ifstream input("input.dat"); // Der Container und eine Hilfsvariable. std::vector<Point> pointContainer; Point point; // Rest der Zeile. std::string line; // So lange lesen, bis der Stream ungültig wird. // Zuerst die drei Werte einlesen (angenommen es seien Integer). // Als zweites einfach die restliche Zeile einlesen. while(input >> point.x >> point.y >> point.z && std::geline(input, line)) { // Punkt speichern. pointContainer.push_back(point); // Vielleicht noch etwas mit dem Rest machen, welcher in line gespeichert wurde? } return 0; }
Oder sowas in der Art.
Referenz:
www.cplusplus.com/referenceAnstatt
getline
könnte man auchignore
verwenden. Finde ich aber weniger schön:
http://www.cplusplus.com/reference/iostream/istream/ignore.htmlGrüssli
-
Super!!!
Danke!!!
Das war genau das was ich gesucht hab.
Es funktioniert super..