加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

sscanf出人意料的结果

发布时间:2020-12-16 10:32:32 所属栏目:百科 来源:网络整理
导读:#includestdio.h#includestring.hint main(){ char buffer[32]; char c; int i; printf("input: "); fgets(buffer,32,stdin); printf("items filled: %dn",sscanf("%c%dn",c,i)); printf("%c%dn",c,i); return 0;} 当键入一个字符后跟一个数字“f7”时,我
#include<stdio.h>
#include<string.h>

int main()
{
   char buffer[32];
   char c;
   int i;
   printf("input: ");
   fgets(buffer,32,stdin);
   printf("items filled: %dn",sscanf("%c%dn",&c,&i));
   printf("%c%dn",c,i);
   return 0;
}

当键入一个字符后跟一个数字“f7”时,我希望“f”进入变量c,“7”进入变量i.由于某种原因,sscanf()无法填充这两个,我得到了他们的初始垃圾值.我究竟做错了什么?

解决方法

实际的sscanf()签名是这样的:

int sscanf(const char *str,const char *format,...);

检查你的签名sscanf()你使用了错误的签名

它应该是

sscanf(buffer,"%c%dn",&i);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读