001
11.08.2008, 20:14 Uhr
0xdeadbeef
Gott (Operator)
|
In etwa so:
C++: |
#include <iostream> #include <sstream> #include <string>
int main() { std::string input = "Name: ran\nOrt: greb\nNummer: 5\nAnzahl: 22\n"; std::string var, val;
std::istringstream in(input);
for(int i = 0; i < 4; ++i) { std::getline(in, var, ':'); // Einlesen bis : in.ignore(); // Leerzeichen ignorieren std::getline(in, val); // Einlesen bis Zeilenende
std::cout << var << " = " << val << std::endl; } }
|
Ich benutze hier einen istringstream, aber mit einem ifstream funktioniert das im Grunde genauso. Natürlich ist dieser Ansatz nicht so flexibel wie ein echter Parser, aber wenn du dich auf das Dateiformat verlassen kannst, sollte das so gehen.
Das Auslesen in Strings oder Zahlen wirst du von Hand machen müssen, wie genau, hängt stark davon ab, was du mit den Werten nachher vorhast. -- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra |