简单的清理缓冲区

简介: 简单的清理缓冲区

前言:

      在学习循环语句时,有几个例子:1.多组输入;2.清理缓冲区。希望能够将while循环与实际问题进行结合。


一、多组输入:

1.1  scanf函数的一些见解:

      在进行多组输入的讲解前,我们需要进行介绍scanf函数,在下面的链接上有详细的介绍。https://legacy.cplusplus.com/reference/cstdio/scanf/?kw=scanf,下面是小编我自己的见解:


      1.scanf函数的返回值是int类型的,返回的是读取数据的个数,下面用代码进行证明:


微信截图_20230911221319.png

微信截图_20230911221326.png

2.scanf函数在读取字符串时,遇到空格就不在读取了。

总结:scanf函数是从缓冲区中的数据读取的,读取成功后,返回读取数据的个数;读取失败后,返回EOF(-1);其次在读取字符串时,遇到空格就不在读取了。

1.2  多组输入:

下面进行一个简单的题目:

微信截图_20230911221341.png

二、清理缓冲区:

2.1  什么是缓冲区:

      缓冲区是内存空间的一部分。也就是说,在内存空间中预留了一定的存储空间,这些存储空间用来缓冲输入或输出的数据,这部分预留的空间就叫做缓冲区。缓冲区根据其对应的是输入设备还是输出设备,分为输入缓冲区和输出缓冲区。


2.2  为什么要引入缓冲区?

      在以前的时期,我们要用磁盘进行储存信息,我们可以先将数据放在缓冲区,等缓冲区的数据读取完后,再去磁盘中进行读取。这样减少磁盘的读写次数,再加上计算机对缓冲区的操作大大快于对磁盘的操作,故应用缓冲区可大大提高计算机的运行速度。


2.3  介绍getchar函数:

      顾名思义,getchar()函数的功能是获取一个字符,而putchar()函数的功能是输出一个字符。


     下面,进行具体的getchar()函数的功能介绍:在下面的链接上有详细的介绍。https://legacy.cplusplus.com/reference/cstdio/getchar/?kw=getchar。getchar()函数,读取成功后,返回读取到字符的ASCII值;读取失败后或遇到文件末尾时,返回EOF(-1)。


2.4  模拟环境进行缓冲区的清理:

      利用循环进行缓冲区的清理,这样如果有特殊情况,我们也可以进行清空缓冲区。

while ((ch = getchar()) != '\n')
    ;

总结:

      小编认为这两个小步骤有可能会成为某个问题的一个步骤,还是要进行学习的,其次通过这个问题可以进一步的了解缓冲区的概念。希望大佬们可以进行点评。

相关文章
Stable Diffusion生成艺术二维码
Stable Diffusion生成艺术二维码
769 0
|
CDN
静态资源库CDN服务
使用静态资源库可以访问线上资源文件,比如jquery库、bootstrap库。使用百度静态资源库的居多,但是发现百度暂时不支持https协议,bootcdn是一个不错的选择。
3646 0
|
机器学习/深度学习 数据采集 供应链
使用Python实现智能食品库存管理的深度学习模型
使用Python实现智能食品库存管理的深度学习模型
581 63
|
12月前
|
存储 JavaScript Java
如何在Java中计算绝对值
绝对值表示一个数离0的距离,总是非负的。在Java中,可以通过`Math.abs()`函数或`if-else`条件语句来计算绝对值。使用`Math.abs()`可直接将负数转为正数,而`if-else`则根据条件判断是否取反。本文介绍了这两种方法的具体实现步骤和代码示例,并展示了如何通过用户输入获取数值并输出其绝对值。此外,还提供了完整的代码和编译执行的方法。
549 6
如何在Java中计算绝对值
|
运维 关系型数据库 MySQL
《mysql慢查询追踪:动态设置与优化,一步到位解决数据库性能瓶颈》
【8月更文挑战第16天】在数据库运维中,监控与优化MySQL慢查询对提升性能至关重要。本文通过电商平台案例演示如何动态调整慢查询配置及分析过程。首先检查`long_query_time`和`slow_query_log`状态,若未开启,则需设置如`long_query_time = 2`并启动日志记录。在高并发时段收集慢查询日志后,分析发现无索引导致效率低下的查询,通过`explain`确认全表扫描,最终创建复合索引解决问题。此方法有助于快速定位并解决性能瓶颈。
777 1
|
存储 Kubernetes 网络协议
在K8S中,Deployment和Statefulset有何区别?
在K8S中,Deployment和Statefulset有何区别?
|
开发框架 前端开发 JavaScript
现代前端开发中的跨平台应用框架比较与选择
本文探讨了现代前端开发中的跨平台应用框架,分析了Flutter、React Native和Ionic等框架的特点及其在不同场景下的适用性,旨在帮助开发者在选择合适框架时做出明智决策。
|
SQL Web App开发 XML
企望制造ERP系统存在远程命令执行漏洞
企望制造 ERP comboxstore.action接口权限设置不当,默认的配置可执行任意SQL语句,利用xp_cmdshell函数可远程执行命令,未经认证的攻击者可通过该漏洞获取服务器权限。
590 1
|
区块链
如何发行数字货币代币?[数字货币代币的发行和操作流程]
如何发行数字货币代币?[数字货币代币的发行和操作流程]
|
存储 Rust 安全
《面向应用安全防护领域设计Wasm插件》赛题解析
2023云原生编程挑战赛2:面向应用安全防护领域设计 Wasm 插件 本赛题希望基于 WASM 实现 Higress 网关安全防护插件,开发者可以选择 Go/Rust/C++ 等多种语言,并从 IP 防护,WAF 规则防护,CC 防护等不同角度出发设计实现插件。

热门文章

最新文章