Bonjour,
[Désolé j'aurais du mettre ce message dans le sous-forum STL].
J'ai une question à propos de istringstream et de l'équivalent de sscanf en c++
La chaîne de caractère que je cherche à décoder est du genre :
1 2 3
| "texte1=<valeur1>\r\n
texte2=<valeur2>\r\n
texte3=<valeur3>\r\n" |
dans ce cas, comment faire, car :
1 2 3 4 5 6
| std::string dummy;
if(!(iss >> dummy >> var1 >> dummy >> var2 >> dummy >> var3))
{
//...
} |
Ne fonctionne pas, je me retrouve avec dummy qui contient toute la ligne.
Existe-t-il des modificateurs de istringstream qui me permettent de faire ça :
sscanf(buff,"texte1=%f\r\ntexte2=%f\r\ntexte3=%d\r\n", ...);
?
Merci.
PS : il y a une méthode qui fonctionne c'est d'utiliser des char, mais c'est illisible, et pas joli.
1 2 3 4 5 6 7 8
| char dummy;
if(!(iss >> dummy >> dummy >> dummy >> dummy >>dummy >>dummy >>dummy >> var1
>> dummy >>dummy >>dummy >>dummy >>dummy >>dummy >>dummy >> var2
>>dummy >>dummy >>dummy >>dummy >>dummy >>dummy >>dummy >>var3))
{
//...
} |
Partager