W
Samo schrieb:
Bis jetzt lese ich immer eine Zeile in einen Buffer und suche nach keywords, da ja, wie erwaehnt, nicht nur die Daten fuer meinen vector in der Datei stehen sondern noch andere Dinge. Die Frage ist jetzt, ob das so ueberhaupt geht oder nicht.
Gehen geht das schon. Die Frage ist, ob es nicht einfacher ist, im Prinzip gleich die Sachen so einzulesen, wie man sie braucht. Zum Beispiel:
int main()
{
using namespace std;
vector< PointN > vBasePoints;
ifstream in( "input.txt" );
int scale = 0;
int sz = 0;
for(;;)
{
std::string key;
if( !getline( in, key, ':' ) )
break;
if( key == "scale" )
{
in >> scale;
}
else if( key == "size" )
{
in >> sz;
}
else if( key == "#" )
{
string zeile;
getline( in, zeile );
stringstream strm( zeile );
copy( istream_iterator< PointN >( strm ), istream_iterator< PointN >(),
back_inserter( vBasePoints ) );
}
// else if( usw.
}
return 0;
}
Die Zeile mit den PointN's lese ich nur deshalb als ganzes ein, weil beim Einlesen von Zahlen das Zeilenende überlesen wird. Es sei denn, es ist definiert, wieviele PointN's in der Zeile stehen.
Falls Du 'scale' und 'size' nicht benötigst, kannst Du auch ignore einsetzen.
Gruß
Werner