#include<stdio.h>
#include<string.h>
int main()
{
char buffer[32];
char c;
int i;
printf("input: ");
fgets(buffer, 32, stdin);
printf("items filled: %d\n", sscanf("%c%d\n", &c, &i));
printf("%c%d\n", c, i);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
当键入一个字符后跟一个数字"f7"时,我希望"f"进入变量c,而"7"进入变量i.出于某种原因,sscanf()无法填充两者,我得到了他们的初始垃圾值.我究竟做错了什么?
实际sscanf()签名是这样的:
int sscanf(const char *str, const char *format, ...);
Run Code Online (Sandbox Code Playgroud)
检查你的签名sscanf()是否使用了错误的签名
它应该是
sscanf(buffer,"%c%d\n", &c, &i);
Run Code Online (Sandbox Code Playgroud)