前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C语言输入scanf

C语言输入scanf

作者头像
用户6755376
发布2020-03-06 14:37:37
4.4K0
发布2020-03-06 14:37:37
举报
文章被收录于专栏:计算机二级C语言

输入scanf和输出printf有很多相似的地方,但差别也很大,出错的地方也更多。

,什么时候加 & 取地址符号?

例如:int x=2;int *p=&x;int a[10];

scanf("%d",&x);//正确

scanf("%d",p); //正确

scanf("%d",a); //正确

scanf("%d",&a[0]); //正确

scanf("%d",x); //错误

scanf("%d",&p);//错误

scanf("%d",*p);//错误

scanf("%d",a[0]); //错误

以上需要明确的是,语法定义后面是地址,指针p即&x(x的地址),数组名a也是地址(首地址,a[0]的地址),所以前4行正确,其他的错误。

二,有多个输入值的情况。

例如:int a,b;

scanf("%d,%d",&a,&b);//终端输入:12,34

两个%d中间可以是逗号或者空格隔开,在输入数值的时候也是中间加逗号或者空格。有同学经常写成scanf("%d%d",&a,&b);这样呢也没有错误,但是注意终端输入时在两个数据之间可以用一个或多个空格、tab 键、回车键分隔。如果没有符号隔开,你输入的是a=1,b=234,还是a=123,b=4,还是别的。或者指定输入的长度(考试重点):

终端输入:1234567

scanf("%2d%4d%d",&x,&y,&z);

x为12,y为3456,z为7

终端输入:1 234567 由于1和2中间有空格,所以只有1位给x

scanf("%2d%4d%d",&x,&y,&z);

x为1,y为2345,z为67

注意,不可以指定float的长度:scanf("%7.2f",&f);//错误

三、特殊的格式化输入

scanf("a=%d,b=%d",&a,&b); 考试超级重点!

这样写代码是没有错误的,但一定要记住是以第一部分的格式在终端输入数据。考试核心为:一模一样。在黑色屏幕上面输入的为:a=12,b=34才可以把12和34正确给a和b 。有一点不同也不行。

scanf("%d%d%*d%d",&a,&b,&c); 跳过输入的第三个数据。即输入4个数值,abc分别对应第1、2、4个数值。

四、输入时候字符和整数的区别(考试超级重点)

scanf("%d",&x);这个时候输入1,特别注意表示的是整数1

scanf("%c",&x);这个时候输入1,特别注意表示的是字符‘1’,使用数值计算的时候是ASCII为整数48。

五、新版VS报错:scanf

如代码正常,报错:返回值被忽略: "scanf"

原因:在ANSI C中没有scanf_s(),只有scanf(),但是scanf()在读取时不检查边界,所以可能会造成内存泄露。于是Microsoft公司在VS中提供了scanf_s(),如果想继续使用scanf这个不安全的函数以下方法可以解决。

方法一:在文件顶部添加代码:#pragma warning(disable:4996) 即可

方法二:错误提示的原因在与vs中的SDL检查;关闭步骤右键单击工程文件-->属性--------> c/c++ ------>所有选项------------> SDL检查选项改为 否

方法三:把 scanf 换为scanf_s。


学习有困难怎么办,快来加入微信群和大家交流吧。为避免闲杂人等加群,维持微信群良好的学习讨论环境,加群需要验证,请搜索群主微信号:qq1146595625,备注填写一个你认为的C语言难点即可。

计算机等级考试二级C语言,资源交流、问题讨论群。

欢迎分享高质量有价值的学习资源。

提问请说明遇到的问题、不明白的地方,最后附代码文本;直接发题目要答案的、图片不清不好辨别的,可能会被无视。

请勿发送无关链接、影响他人等,违者踢出。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-03-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 计算机二级C语言 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档