我作为输入传递给我的程序:"<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参数。