PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : String aufteilen



pfefferkeks
03-12-2005, 18:29
Hi,

ich habe Strings in C++ der wie folgt aussieht :
v 0.151632 -0.043319 -0.08824

Jetzt brauche ich diese 3 signt float zahlen in drei float Variablen.

Ich habe schon damit herumgespielt den String in ein c_str array zu konvertieren und dann einzeln darauf zu zu greiffen. Geht leider nicht da der naechste String zwar genauso aufgebaut ist aber mit oder ohne - mal eine Zahl mehr mal weniger. Das einzige was konstand bleigt ist das Trennzeichen (der blank). Koennt Ihr mir da helfen?

Danke pfefferkeks

locus vivendi
03-12-2005, 19:04
Am einfachsten geht das möglicherweise mit einem [i]stringstream.
Also ungefähr in der Art:


std::string o1("v 0.151632 -0.043319 -0.08824");
std::istringstream isstream1(o1);

char ch;
isstream1 >> ch;
if(!isstream1)
{
// Fehlerbehandlung hier.
}
std::cout << "\nchar = " << ch;

float f1;
isstream1 >> f1;
if(!isstream1)
{
// Fehlerbehandlung hier.
}
std::cout << "\nfloat = " << f1;

float f2;
isstream1 >> f2;
if(!isstream1)
{
// Fehlerbehandlung hier.
}
std::cout << "\nfloat = " << f2;

Den größten Raum nimmt die Fehlerbehandlung ein.

pfefferkeks
03-12-2005, 20:08
Danke Dir!

Genau das wars, diese sstreams sind mal echt cool ;) wiso kannte ich die vorhher nicht.

Danke Dir nochmal.

gruesse