sscanf出人意料的结果

sscanf出人意料的结果,第1张

概述#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))
#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;}

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

解决方法 实际的sscanf()签名是这样的:

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

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

它应该是

sscanf(buffer,"%c%d\n",&i);
总结

以上是内存溢出为你收集整理的sscanf出人意料的结果全部内容,希望文章能够帮你解决sscanf出人意料的结果所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1220964.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存