2009-10-03 60 views
0

我传递输入到我的程序:"<param value=s/>"从C语言的xml解析字符?

我用这个代码:

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]charactersscanf参数,character[0]printf参数。

+0

如果我在sscanf中使用“char character”,然后使用“&character”,那么我会从strtok(数据,字符)中得到一个异常。我正在尝试使用该函数而无需将指针指向int。我不明白为什么? – goe

+0

你有一个角色。你为什么试图分裂它? –