sscanf出人意料的结果

Inn*_*per 3 c scanf

#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()无法填充两者,我得到了他们的初始垃圾值.我究竟做错了什么?

Omk*_*ant 6

实际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)