我作为输入传递给我的程序:"<param value=s/>"
我使用这段代码:
char character[1];
sscanf(data, "<param value=%c/>", &character);
printf("%c", character);
然而,输出似乎是“s/>”,而不仅仅是“s”字符。这里有什么问题?
您的代码是正确的,但您需要输出character[0]
:
printf("%c", character[0]);
但是,您应该将地址运算符放在 前面character
,正如sscanf()
预期的类型参数char *
而不是char (*)[1]
:
sscanf(data, "<param value=%c/>", character);
char character[1]
可以替换为char character
,同时修复您的错误。
如果要保留character
为数组,则必须使用&character[0]
orcharacter
作为sscanf
参数,并character[0]
作为printf
参数。