Affectations bizarres dans des string

Résolu
sabugo Messages postés 20 Date d'inscription vendredi 6 février 2004 Statut Membre Dernière intervention 16 juillet 2005 - 13 juil. 2005 à 02:26
sabugo Messages postés 20 Date d'inscription vendredi 6 février 2004 Statut Membre Dernière intervention 16 juillet 2005 - 13 juil. 2005 à 12:07
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

vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 12
13 juil. 2005 à 04:06
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;
3
sabugo Messages postés 20 Date d'inscription vendredi 6 février 2004 Statut Membre Dernière intervention 16 juillet 2005
13 juil. 2005 à 12:07
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.
0