当前位置:首页 > 教育 >

c语言scanf注意事项(scanf在c语言中的用法图片)

来源:原点资讯(www.yd166.com)时间:2024-06-20 04:58:21作者:YD166手机阅读>>

相比较Java的键盘录入,C语言的scanf有一些需要注意的细节,为了避免使用的时候踩坑,我们就来了解一下scanf。

scanf()是C语言的格式输入函数,和printf函数一样被声明在stdio.h头文件中,它的基本使用很简单:

1 int a;2 scanf("%d",&a);//程序执行到这里时,就等待用户输入;它接收的是变量的地址

//所以一般情况下除了指针型变量和数组名要给变量加上取地址符&

注意事项一:内存溢出(输入的类型要和占位符一致就不拿出来单独啰嗦了)

1 char s[1];//长度为1,只能存一个元素2 printf("请输入s的值:"); 3 //因为这里使用的是数组名,数组名就是地址,所以不用加取地址符& 4 scanf("%s",s); //输入abcd 5 printf("s=%s\n",s);

诶,照结果来看abcd都被存进字符数组s里面了,但是我们知道,s是不是只能存一个字节的数据,所以bcd已经非法占用内存了。虽然有时候程序看起来会正常执行,但是它会留下一些隐患。使用的时候需要注意这一点。

注意事项二:录入多个变量

1 double m,n;2 printf("请输入m、n:"); 3 //占位符不写东西时,录入的时候默认以空格分隔

//如果占位符用逗号分隔,录入的时候用逗号分隔4 scanf("%lf%lf",&m,&n);// scanf("%lf,%lf",&m,&n);5 printf("n=%lf m=%lf\n",m,n);

如果我将第四行代码换成注释的代码就需要这样用:

输入的时候用空格分隔会发生什么呢

可以看到,n的值没能录入。建议使用默认的分隔符,占位符中不要自己加东西。

注意事项三:char类型

1 char name[10]=""; 2 int age=0; 3 double sal=0.0; 4 char gender='a';//m代表man w代表woman 5 6 printf("请输入名字:"); 7 scanf("%s",name);//数组名,不用加& 8 9 printf("请输入年龄:");10 scanf("%d",&age);11 12 printf("请输入薪水:");13 scanf("%lf",&sal);14 15 printf("请输入性别:");16 //scanf中char类型会出现接收上面的回车字符,一个字节被占了,所以获取不到录入的数据 17 scanf("%c",&gender); 18 //所以再接收一次 19 scanf("%c",&gender); 20 21 printf("姓名:%s \n年龄:%d \n薪水:%lf \n性别:%c",name,age,sal,gender);

先看一下去掉19行代码会发生什么:

乱吧,性别没法输入吧;加上19行之后,也就是再获取一次字符之后:

,

栏目热文

工厂化循环水养殖石斑鱼(石斑鱼工厂化循环水技术操作规程)

工厂化循环水养殖石斑鱼(石斑鱼工厂化循环水技术操作规程)

湛江千舟渔水产养殖有限公司工厂化循环水养殖基地。 记者李忠 摄谈起养鱼养虾,你的脑海会浮现怎样的场景?是碧波万顷,或是无...

2024-06-20 05:04:21查看全文 >>

养石斑鱼一亩利润(养一亩石斑鱼能赚多少钱)

养石斑鱼一亩利润(养一亩石斑鱼能赚多少钱)

石斑鱼为我国南海沿海养殖的重要经济品种,南海四面环海,地理位置具有独特的海洋资源优势,为海水养殖业的发展提供了丰富的资源...

2024-06-20 05:00:37查看全文 >>

溪石斑鱼养殖的可行性报告(桃源地理溪石斑鱼生态养殖基地)

溪石斑鱼养殖的可行性报告(桃源地理溪石斑鱼生态养殖基地)

小溪石斑鱼为鲤形目、鲤科鱼类,学名叫光唇鱼,生态习性是喜欢生活在水质清澈、无污染、砾石底质、水流湍急的小溪中,春夏喜在浅...

2024-06-20 05:04:22查看全文 >>

溪石斑鱼养殖利润和成本(溪石斑鱼养殖的经济效益怎么样)

溪石斑鱼养殖利润和成本(溪石斑鱼养殖的经济效益怎么样)

石斑鱼为我国南海沿海养殖的重要经济品种,南海四面环海,地理位置具有独特的海洋资源优势,为海水养殖业的发展提供了丰富的资...

2024-06-20 05:03:35查看全文 >>

石斑鱼养殖技术与养殖方法(石斑鱼养殖方法和技术教程)

石斑鱼养殖技术与养殖方法(石斑鱼养殖方法和技术教程)

技术概述:国内石斑鱼养殖主要模式有海上网箱养殖、池塘养殖及工厂化养殖。本技术中网箱养殖技术模式围绕石斑鱼网箱养殖生产过程...

2024-06-20 05:05:31查看全文 >>

c语言scanf语句的用法和格式(scanf在c语言中所有用法)

c语言scanf语句的用法和格式(scanf在c语言中所有用法)

学习C语言最基础的知识点要数9条语句了,虽是基础内容,但用9条语句却可以实现很多功能。看了下面的每条语句的一一举例后,你...

2024-06-20 05:18:54查看全文 >>

c语言scanf函数用法详解(c语言scanf语句在什么情况下使用)

c语言scanf函数用法详解(c语言scanf语句在什么情况下使用)

1. scanf函数的一般形式: scanf(格式控制,地址表列):“格式控制”的含义同printf函数。“地址表列”是...

2024-06-20 05:16:21查看全文 >>

c语言哪些时候用scanf(c语言scanf是不是被弃用了)

c语言哪些时候用scanf(c语言scanf是不是被弃用了)

在《C Primer Plus》中有如下代码: ...... while(scanf("%d", &num)) ...

2024-06-20 04:37:17查看全文 >>

c语言中的scanf本质是什么(scanf在c语言中什么情况下用)

c语言中的scanf本质是什么(scanf在c语言中什么情况下用)

程序是人机交互的媒介,有输出必然也有输入,我们开始讲解如何从键盘输入数据。在C语言中,有多个函数可以从键盘获得用户输入:...

2024-06-20 05:07:01查看全文 >>

c语言scanf说明符详解(c语言中scanf是干什么的)

c语言scanf说明符详解(c语言中scanf是干什么的)

gets与scanf输入字符串的方式也非常类似,但是有几个区别:(1) gets的输入分割符只有回车,因此gets是能够...

2024-06-20 04:54:04查看全文 >>

文档排行