关于C语言Scanf的使用

关于C语言Scanf的使用1、scanf语法定义后面加地址!(什么是地址)intx=2;int*p=&x;inta[10];&x,p,a;&a[0];这些是地址,p是指针,a是数组首地址。x,&p,*p,a[0];这些都不是地址2、有多个输入值的情况(我个人比较觉得有问

大家好,欢迎来到IT知识分享网。关于C语言Scanf的使用

1、scanf语法定义后面加地址!(什么是地址)

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

  &x,p,a;&a[0];这些是地址,p是指针,a是数组首地址。

  x,&p,*p,a[0];这些都不是地址

2、有多个输入值的情况(我个人比较觉得有问题的地方)

       scanf(“%d,%d”,&a,&b);//终端输入:12,34。必须有逗号按照scanf引号中的格式输入

       指定读取个数,终端输入: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);//错误

3、特殊的格式化输入

  双精度格式声明要用lf 单精度用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个数值。(为什么会跳过第三个呢?)

4、输入时候字符和整数的区别

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

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

5、新版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。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/32869.html

(0)
上一篇 2023-11-29 16:00
下一篇 2023-12-03 12:15

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信