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

news2024/11/14 12:18:06

目录

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.coloradmin.cn/o/2145846.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CCF202006_1

问题描述 试题编号&#xff1a;202006-1试题名称&#xff1a;线性分类器时间限制&#xff1a;1.0s内存限制&#xff1a;512.0MB问题描述&#xff1a; 题解&#xff1a; #include<bits/stdc.h>using namespace std; int n, m;struct Node {int x, y;char ch; }node[1010…

9.16日常记录

1.LRU算法 核心思想:LRU算法&#xff08;Least Recently Used&#xff09;是一种常用的缓存淘汰策略&#xff0c;它的核心思想是“如果数据最近被访问过&#xff0c;那么将来被访问的几率也更高”。LRU算法主要用于内存管理和缓存系统。当内存或缓存空间已满&#xff0c;需要腾…

【工具变量】气候适应型试点城市DID(2005-2022年)

数据来源&#xff1a;本数据来源于中国ZF网发布的《关于深化气候适应型城市建设试点的通知》 时间跨度&#xff1a;2005-2022年数据简介&#xff1a;适应型试点城市是指在应对气候变化、提高城市适应能力方面进行先行先试的城市。根据中国ZF网发布的《关于深化气候适应型城市建…

在 Stable Diffusion 1.5 中 Lora, Dreambooth, Textual Inversion的详解指北

Lora, Dreambooth and Textual Inversion 说明 您是否想象过您可爱的宠物与埃菲尔铁塔合影的画面&#xff0c;或者想象过如何生成一张带有您朋友面孔的人工智能图像&#xff1f; 是的&#xff0c;通过稳定扩散技术的微调&#xff0c;这完全是可能的&#xff01; 创建这些场景…

NISP 一级 | 7.2 信息安全风险管理

关注这个证书的其他相关笔记&#xff1a;NISP 一级 —— 考证笔记合集-CSDN博客 0x01&#xff1a;信息安全风险 信息系统不可能达到绝对安全&#xff0c;但可以通过安全风险&#xff08;以下简称“风险”&#xff09;控制来实现符合个人或单位目标的一定程度的安全。信息安全管…

xxl-job、Quartz、power-job、elastic-job对比选型

一、框架对比 1. Quartz 优点&#xff1a;稳定性和可扩展性好&#xff0c;适用于企业级应用&#xff1b;调度功能丰富&#xff0c;满足多种需求。 缺点&#xff1a;本身不提供原生的分布式支持&#xff0c;需要通过扩展或与其他组件结合来实现分布式任务调度&#xff1b;调度…

树莓派驱动之spi回环测试

开启spi sudo raspi-config选择Interfacing options,选择spi打开 lsmod可以看到spi_bcm2835 短接MISO和MOSI 编写回环代码spitest.c #include <stdio.h> #include <unistd.h> #include <stdlib.h> #include <fcntl.h> #include <string.h>…

第六部分:1---进程间通信,匿名管道

目录 进程间通信 进程间通信的目的&#xff1a; 进程间通信的本质&#xff1a; 管道&#xff1a; 管道的定义&#xff1a; 匿名管道 单向通信的管道通路&#xff1a; 进程和文件之间的解耦&#xff1a; 单向管道的读写端回收问题&#xff1a; 管道通信主要实现动态数…

Python VS Golng 谁更胜一筹?

今天我们聊聊Python和Golang这俩到底谁更胜一筹。 这个话题我已经在各种技术论坛上看到无数次了&#xff0c;每次都能引起一波热烈的讨论。作为一个多年写代码的老程序员&#xff0c;今天就站在我的角度&#xff0c;和大家掰扯掰扯这两个语言各自的优缺点。 1. 性能与并发模型…

283. 移动零(快慢指针)

算法分析&#xff1a; 如果数组没有0&#xff0c;快慢指针同步移动&#xff0c;元素会被自己复制&#xff1b;如果有0&#xff0c;快指针找到非零元素&#xff0c;将其复制到慢指针位置最终将剩余位置填充为0。 代码&#xff1a; class Solution {public void moveZeroes(i…

Android Studio 2024 安装、项目创建、加速、优化

文章目录 Android Studio安装Android Studio项目创建Android Studio加速修改GRADLE_USER_HOME位置减少C盘占用空间GRADLE加速 修改模拟器位置减少C盘占用空间参考资料 Android Studio安装 下载android studio download android-studio-2024.1.2.12-windows.exe 或者 android-…

11 - TCPClient实验

在上一个章节的UDP通信测试中&#xff0c;尽管通信的实现过程相对简洁&#xff0c;但出现了通信数据丢包的问题。因此&#xff0c;本章节将基于之前建立的WIFI网络连接&#xff0c;构建一个基础的TCPClient连接机制。我们利用网络调试助手工具来发送数据&#xff0c;测试网络通…

[PICO VR眼镜]眼动追踪串流Unity开发与使用方法,眼动追踪打包报错问题解决(Eye Tracking/手势跟踪)

前言 最近在做一个工作需要用到PICO4 Enterprise VR头盔里的眼动追踪功能&#xff0c;但是遇到了如下问题&#xff1a; 在Unity里面没法串流调试眼动追踪功能&#xff0c;根本获取不到Device&#xff0c;只能将整个场景build成APK&#xff0c;安装到头盔里&#xff0c;才能在…

【技术解析】消息中间件MQ:从原理到RabbitMQ实战(深入浅出)

文章目录 【技术解析】消息中间件MQ&#xff1a;从原理到RabbitMQ实战(深入浅出)1.简介1.1 什么是消息中间件1.2 传统的http请求存在那些缺点1.3 Mq应用场景有那些1.4 为什么需要使用mq1.5 Mq与多线程之间区别1.6 Mq消息中间件名词1.7主流mq区别对比1.8 Mq设计基础知识 2.Rabbi…

C++ | Leetcode C++题解之第415题字符串相加

题目&#xff1a; 题解&#xff1a; class Solution { public:string addStrings(string num1, string num2) {int i num1.length() - 1, j num2.length() - 1, add 0;string ans "";while (i > 0 || j > 0 || add ! 0) {int x i > 0 ? num1[i] - 0 …

大数据Flink(一百一十八):Flink SQL水印操作(Watermark)

文章目录 Flink SQL水印操作&#xff08;Watermark&#xff09; 一、为什么要有WaterMark 二、​​​​​​​​​​​​​​Watermark解决的问题 三、​​​​​​​​​​​​​​代码演示 Flink SQL水印操作&#xff08;Watermark&#xff09; 一、​​​​​​​为什么…

【数据结构】数据结构系列学习笔记——导航篇

一&#xff1a;概述 数据结构是计算机科学中的核心概念之一&#xff0c;是优化算法性能和资源利用率的关键。在软件开发和数据处理中&#xff0c;选择合适的数据结构对于算法的效率至关重要。数据结构的选择通常基于数据的使用模式&#xff0c;包括数据元素之间的关系、数据的存…

日志框架的使用

一、日志概述 日志&#xff1a;用来记录程序运行过程中的信息&#xff0c;并可以进行永久存储。 开发过程中可能会出现以下需求&#xff1a; 希望系统能记住某些数据是被谁操作的&#xff0c;比如被谁删除了&#xff1f;想分析用户浏览系统的具体情况&#xff0c;以便挖掘用…

【深度学习】深度学习模型的加密及解密方案及源码

本文摘要 本文主要根据自己遇到的情况,例如:对于yolo或paddle训练的模型文件,对外使用,不想要别人拿到我的模型文件随意乱用,此时就涉及到对模型文件进行加密与解密 深度学习模型的加密保护非常重要,尤其在商业应用场景下。常见的模型加密方法包括模型文件加密、加密硬件…

图像分割基本知识

计算机视觉和图像处理 Tensorflow入门深度神经网络图像分类目标检测图像分割 图像分割 一、目标分割1.1 图像分割的定义1.2 任务类型1.2.1 任务描述1.2.2 任务类型 二、语义分割2.1 FCN网络2.1.1网络结构 2.2 Unet网络 三、UNet案例3.1 数据集获取3.1.1 设置相关信息3.1.2 图像…