Affectations bizarres dans des string

Résolu
Signaler
Messages postés
20
Date d'inscription
vendredi 6 février 2004
Statut
Membre
Dernière intervention
16 juillet 2005
-
Messages postés
20
Date d'inscription
vendredi 6 février 2004
Statut
Membre
Dernière intervention
16 juillet 2005
-
Bonjour !!



Voilà, je suis en train de tester MinML, histoire de parser des fragments xml.



Je tente de récupérer le nombre d'éléments enfant d'un noeud, puis
d'itérer sur ces éléments suivant un t_xml_manip affecté sur la racine
de mon fragment.



En gros, ça donne ça :



string result = "1";

for( int j=0; j < paramsize; j++ )

{


ostringstream ossp;


ossp << j;


const string resultp = ossp.str();




const string sp = "/commands/command:" + result + "/params/param:" +
resultp;


string spname( sp + "/name" );


string sptype( sp + "/type" );


string spval( sp + "/value" );




fprintf( stderr, " %s, %s, %s ", spname, sptype, spval );

}





seulement, le fprintf me retourne un truc très bizarre, du genre



/commands/command:1/params/param:0/name, , ƒÄ ƒøÿt;ðv3Àë‹Æ_^[Y]Ã���U‹ìSVW‹u ‹]f‹F¨�u¨u

fƒNƒÈÿë/…Ût)SèÐæÿÿY‹ø…ÀtVWSèéþÿÿƒÄ …Àt3ÀŠD;ÿëƒÈÿë3À_^[]Ã��U‹ìS‹]‹S…Ò}

‹C Â@‹Èë‹Â‹ÊöC@t‹Á[]Ã{





J'ai l'impression que seul le premier, spname, est affecté, mais les
autres non... Je ne comprend pas où se situe le problème... a première
vue, le code semble plutôt simple...





Merci pour vos pistes :)



Thierry

2 réponses

Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
10
fprintf est une fonction C, et travaille donc avec des char*, pas des string.
fprintf( stderr, " %s, %s, %s ", spname.c_str(), sptype.c_str(), spval.c_str() );

Mais la solution suivante irait mieux avec le reste de ton code:
cerr << spname << ", " << sptype << ", " << spval << endl;
Messages postés
20
Date d'inscription
vendredi 6 février 2004
Statut
Membre
Dernière intervention
16 juillet 2005

Aille, dès fois, je vous jure...



Merci vecchio56, tu as entièrement raison... Il faut réellement que je
me penche sur les façons de débugger en C++, car j'ai tendance à
vouloir mettre la charrue avant les boeufs...



Merci beaucoup pour cette réponse nette et précise.