2009-10-03 4 views
0

Je passe comme entrée à mon programme: "<param value=s/>"Analyser un caractère d'un XML dans le langage C?

J'utilise ce code:

char character[1]; 
sscanf(data, "<param value=%c/>", &character); 
printf("%c", character); 

Cependant la sortie semble être "s />" au lieu de seulement char "s". qu'est-ce qui ne va pas ici?

Répondre

0

Votre code est correct, mais vous devez sortie character[0]:

printf("%c", character[0]); 

Vous devriez laisser tomber l'opérateur d'adresse devant character, bien que, comme sscanf() attend un argument de type char * et non char (*)[1]:

sscanf(data, "<param value=%c/>", character); 
+0

Merci! Cela a fonctionné parfaitement! – goe

0

char character[1] peut être remplacé par char character, en corrigeant votre bogue en même temps.

Si vous voulez garder character comme un tableau, vous devez utiliser &character[0] ou character comme argument sscanf et character[0] comme argument printf.

+0

Si j'utilise "char character" puis "& character" dans le fichier sscanf, j'obtiens une exception de la part de strtok (data, character). Que j'essaie d'utiliser cette fonction sans lancer de pointeur vers un int. que je ne comprends pas pourquoi? – goe

+0

Vous avez un caractère. Pourquoi essayez-vous de le diviser? –

Questions connexes