#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出人意料的结果所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)