1.还是这句话 重要!!!:导库
有个记忆的小技巧:cs t di o:cs枪战,他玩,第0
#include<cstdio>
一、scanf用法
基础信息:
scanf(格式控制符,变量地址);
代码样例(注意,后面有重点!)
#include<cstdio>
int main(){
int n;
scanf("%d",&n); //读入整数 %d的用法day1讲过了
printf("%d",n); //day1讲过了
return 0;
}
敲黑板!!!重点来了!
在我们所写的scanf的代码中,所定义的n前有一个“&”,
& 是 取地址符(adress),它的作用是让系统为整数n
腾出一个内存大小,是随机的地址位,我们在指针时细讲
但打代码时千万不要忘了它!
scanf与cin最大的区别就是一个需要提示输入内容的类型,而cin不用
而scanf所需加载时间短(在下面看看例子)
e.g.1 scanf方法
#include<cstdio>
int main(){
char c;//输入字符
scanf("%c",&c);
int d1;//输入整数
scanf("%d",&d1);
float f;输入小数
scanf("%f",&f);
return 0;
}
结果:
e.g.2 cin方法
#include<iostream>
using namespace std;
int main(){
char c;
int d1;
float f;
cin>>c>>d1>>f;
return 0;
}
结果:
再总结一下scanf可读取的数据类型:
二、scanf输入一串数
基础信息咯~
scanf(格式控制字符串,变量地址列表);
看个例子吧!
#include<cstdio>
int main(){
int n;
double f;
scanf("%d%lf",&n,&f);//在格式控制符连着写就行,变量地址列表要用逗号分隔
printf("%d %f",n,f); //在格式控制符应有空格,输出列表要用逗号分隔
return 0;
}
给大家几个注意事项!
接下来是另一个重点(敲黑板!!!)
* 的使用
“ * ”是忽略符,可让计算机忽略这项值(没听懂吧,看个例子)
#include<cstdio>
int main(){
int a,b;
scanf("%d%*d%d",&a,&b);//在%d与%d之间有一个%*d,让计算机忽略的我们输入的第2项
printf("%d %d",a,b);
}
输出结果:
域宽格式符的使用:
在%d等格式控制符中加入数字,控制输入的长度
举个栗子:
#include<cstdio>
int main(){
int a,b;
scanf("%4d%d",&a,&b);//在%d之间有一个4,让计算机把输入的前四个数字存入a,剩下的存入b
printf("%d %d",a,b);
}
看一看结果
//作者自思考:可以用它做一个数字分割器
列表的读取
与printf相同,scanf可以读取列表(窃喜)
我们要用到大名鼎鼎的 “%s”
基本:
scanf("%s",字符串名称);
例子:
#include<cstdio>
int main(){
char s[100];
scanf("%s",s);
printf("[%s]",s);//老知识也回顾一下~
return 0;
}
离我的想法又近了一步!
给大家补充一个易错点!
在输入时,空格和回车都会被当作输入间隔符,导致了下面的问题
如何解决问题呢(O_O)?
Level 2版 字符串输入输出
需要把我们的“%s”再次升级-------Level 2!
scanf("%s%s",字符串名称1,字符串名称2);
例子:
#include<cstdio>
int main(){
char s1[100],s2[100],s3[100];
scanf("%s%s%s",s1,s2,s3);
printf("[%s]\n",s1);
printf("[%s]\n",s2);
printf("[%s]\n",s3);
return 0;
}
输出结果:
成功啦!
直接上代码!
#include<cstdio>
int main(){
int a,b,c;
scanf("%d,%d,%d",&a,&b,&c);//在格式控制符之间加入你喜欢的间隔符,输入时输进去就会消失
printf("%d %d %d",a,b,c);
return 0;
}
结果:
浅浅的来一些附加格式符
来个小总结
总结一下:scanf的使用方法虽然比cin难一点,但使用的效率,功能都比cin好
三、来点小题
回家思考!
再见ヾ( ̄▽ ̄)Bye~Bye~!