2009-10-03 4 views
0

Я передаю в качестве входных данных для моей программы: "<param value=s/>"Разбор символов из xml на языке C?

Я использую этот код:

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

Однако выход, кажется, «s />» вместо «s» только символ. что здесь не так?

ответ

0

Ваш код правильный, но вам нужно вывести character[0]:

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

Вы должны упасть оператор адреса перед character, хотя, как sscanf() ожидает аргумент типа char * и не char (*)[1]:

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

Спасибо! Это сработало отлично! – goe

0

char character[1] может быть заменен на char character, исправляя вашу ошибку одновременно.

Если вы хотите сохранить character как массив, вы должны использовать &character[0] или character в качестве аргумента sscanf и character[0] как printf аргумента.

+0

Если я использую символ «char», а затем «& character» в sscanf, тогда я получаю исключение из strtok (data, character). Я пытаюсь использовать эту функцию, не указав указатель на int. чего я не понимаю почему? – goe

+0

У вас есть один персонаж. Почему вы пытаетесь разделить его? –

 Смежные вопросы

  • Нет связанных вопросов^_^