当前位置: 首页 > news >正文

scanf()函数的介绍及基础用法

目录

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()的拓展应用的文章的。^.^ ^.^ 


http://www.mrgr.cn/news/29994.html

相关文章:

  • 接口测试整体框架
  • Tofu AI视频处理模块视频输入配置方法
  • 如何在 Ubuntu 22.04 上安装 ownCloud
  • 【api】java和python联动
  • 机器学习—softmax的改进实现
  • react的创建与书写
  • Ubuntu LLaMA-Factory实战
  • 全新 HLOB 模型:预测限价订单簿中间价格变化方向的利器
  • Qt窗口——QToolBar
  • C++map,set,multiset,multimap详细介绍
  • 基于Jeecgboot3.6.3的flowable流程增加任务节点操作按钮的控制(一)
  • 【pytorch学习笔记,利用Anaconda安装pytorch和paddle深度学习环境+pycharm安装---免额外安装CUDA和cudnn】
  • Spring Boot中的响应与分层解耦架构
  • 如何兼容性地开发响应式站点——WEB开发系列40
  • ‍♀️焦虑症患者的救赎之路:这5项运动让你重拾宁静与力量!
  • python 实现average median平均中位数算法
  • 9.3 溪降技术:携包游泳
  • 新手怎样制作网页?
  • 可靠轻便,开箱即用的数据安全交换系统怎么选?关键在这三点
  • nodejs桌面消息通知
  • 基于Jeecgboot3.6.3的flowable流程增加任务节点字段的控制(二)
  • 华为OD机试 - 字符串划分(Java 2024 E卷 100分)
  • [数据集][目标检测]文本表格检测数据集VOC+YOLO格式6688张5类别
  • 光伏检测数据集(六种)
  • 基于web的工作管理系统设计与实现
  • Java访问一口气讲完!o(*≧▽≦)ツ┏━┓