目录
scanf()函数的介绍及基础用法
一:头文件
二:一般用法
三:返回值
1. 正整数的情况:
2. 0 的情况:
3. EOF的情况:
四:说明
scanf()函数的介绍及基础用法
【说明】这是 C语言中的标准输入函数,C++中一般使用 cin。(这里篇幅比较长,可以收藏一下哦,如果对你有一些帮助的话,就点个赞吧 ^.^ )
一:头文件
scanf()函数的头文件是 <stdio.h>。
二:一般用法
输入时用的格式字符和 printf()是一样的,可以点开我的主页,里面有一篇文章介绍 printf()的用法,那里面有详细介绍,这里就不细讲了。(当然还有一些其他需要掌握的函数,容器等等,也都可以了解一下,相信会对你有帮助的)
下面就给出一些格式字符输入样例:
1. int 型
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
int a=10;
scanf("%d",&a);
printf("%d",a);
}
//输入 6,输出 6
2.string 类型
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
char ch[10];
scanf("%s",&ch);
printf("%s",ch);
}
3. char 类型
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
char ch;
scanf("%c",&ch);
printf("%c",ch);
}
4. double 类型
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
double a;
scanf("%lf",&a);
printf("%lf",a);
}
三:返回值
其实有些时候你会发现,你做的题中,有时候偏难的往往输入是不太容易的,尤其是边输入边处理数据时,有时候只要这部分处理好了,整道题就迎刃而解了。这里介绍一下 scanf()函数的返回值,会有一定的帮助。
scanf()函数返回值有三种情况——正整数、0、EOF。
1. 正整数的情况:
当 scanf()函数接收到几个字符,它的返回值就是几。
【代码如下】
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
int a,b;
int sum=scanf("%d %d",&a,&b);
printf("%d",sum);
return 0;
}
运行结果如下:
1 2
2
--------------------------------
Process exited after 4.731 seconds with return value 0
请按任意键继续. . .
1 2 3
2
--------------------------------
Process exited after 3.266 seconds with return value 0
请按任意键继续. . .
//超过两个数字,但 scanf 只能读取两个输入数据,所以返回值是 2,与其他无关
1,2
1
--------------------------------
Process exited after 7.133 seconds with return value 0
请按任意键继续. . .
//在 scang 中,是以 %d %d进行接收的,输入时加上,只能读取到数据 1,不能读取到 2
其他类型,如 char字符型、字符串型也都同上。
2. 0 的情况:
当 scanf ()输入类型不匹配时,其返回值是 0
【代码如下】
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
int a;
int sum=scanf("%d",&a);
printf("%d",sum);
return 0;
}
运行如果如下:
a
0
--------------------------------
Process exited after 2.542 seconds with return value 0
请按任意键继续. . .
3. EOF的情况:
EOF是标准库函数里定义的常量,ASCII 值为 -1,意味着文件结束的标志。当输入时按 Ctrl+z 后,表示输入结束,运行框里会出现 ^Z 的字符。
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
int a;
while(scanf("%d",&a)!=EOF)
{
printf("%d",a);
}
}
运行结果如下:
1
1
3
3
43
43
2
2
50
50
9
9
^Z
--------------------------------
Process exited after 23.49 seconds with return value 0
请按任意键继续. . .
四:说明
上面介绍的是 scanf()函数的基础用法,包括最基本的输入,以及 scanf()函数的返回值,基本上掌握了这些,scanf()函数你就不会有太大问题,关键就是具体的练习了。
其实关于 scanf()函数的拓展应用还是有挺多的,有的还是挺实用的,不过不掌握也没什么太大问题,因为你可以自己用其他方法来进行一些,比如判定什么的,它并不是必要的,如果想要了解学习,可以点一下关注,有时间了会发一篇关于 scanf()的拓展应用的文章的。^.^ ^.^