【发布时间】:2010-12-03 15:49:01
【问题描述】:
我将作为输入传递给我的程序:"<param value=s/>"
我使用这个代码:
char character[1];
sscanf(data, "<param value=%c/>", &character);
printf("%c", character);
但是输出似乎是“s/>”,而不仅仅是“s”字符。 这里有什么问题?
【问题讨论】:
我将作为输入传递给我的程序:"<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] 或character 作为sscanf 参数,并使用character[0] 作为printf 参数。
【讨论】: