一段代码带你理解输入缓冲区

本文将多次使用C语言中的scanf与getchar函数,带你充分理解输入缓冲区。

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{

/*
int ch=getchar();
//从输入缓冲区获取一个字符,返回值类型是int
//错误输入时返回EOF(end of file)
putchar(ch);
//打印一个字符

int ch=0;
while ((ch = getchar()) != EOF)
{
putchar(ch);
}
*/
int num=0;
char m ='\0';
printf("1.实现只打印数字字符\n");
printf("2.输入缓冲区示例\n");
scanf("%d",&num);
switch (num)
{
case 1:
getchar();//清理输入缓冲区
printf("功能1\n");

while ((m = getchar()) != '\n')
{
if (m < '0' || m>'9')
{
continue;
}
putchar(m);
}
break;
case 2:
getchar();
printf("功能2\n");

char password[20] = { 0 };
printf("password:");
scanf("%s", password);
//数组名本身就是一个地址;在输入缓冲区不读空格,\n
//getchar();//读取了输入缓冲区中的\n
int ch = 0;
while ((ch = getchar()) != '\n')
{
;
}//彻底清理输入缓冲区;只有空格前的内容被password保存
printf("please confirm Y/N:");
int ret = getchar();
if ('Y' == ret || 'y' == ret)
{
printf("yes");
}
else
{
printf("no");
}
//没写48行代码时为什么功能不实现?
//在scanf执行完后输入缓冲区余下\n,getchar不等待直接拿走并赋值给ret
//进if语句判断后直接输出no
break;
default:printf("无效输入");

}
return 0;

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1027653.shtml

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

相关文章

人工智能在健康医疗软件中的应用

人工智能在健康医疗软件中的应用关键词&#xff1a;人工智能、健康医疗软件、医疗诊断、疾病预测、医疗影像分析摘要&#xff1a;本文深入探讨了人工智能在健康医疗软件中的应用。首先介绍了相关背景&#xff0c;包括目的范围、预期读者等内容。接着阐述了人工智能与健康医疗软…

LobeChat多语言支持现状与国际化适配方案

LobeChat多语言支持现状与国际化适配方案 在构建现代AI聊天应用的今天&#xff0c;一个看似基础却极易被低估的问题正悄然影响着全球用户的体验——你有没有遇到过这样的场景&#xff1a;一位德国用户打开对话界面&#xff0c;发现按钮上写着“New Chat”&#xff0c;而提示语却…

BetterNCM插件:网易云音乐终极增强方案

还在忍受网易云音乐原版客户端的各种限制吗&#xff1f;&#x1f914; BetterNCM插件将彻底改变你的音乐体验&#xff01;这款强大的增强工具通过一键式安装程序&#xff0c;为你带来前所未有的个性化音乐世界。 【免费下载链接】BetterNCM-Installer 一键安装 Better 系软件 …

17、探索 Mozilla 的 XPCOM 对象

探索 Mozilla 的 XPCOM 对象 1. Mozilla 平台与 XPCOM 组件概述 Mozilla 平台是构建软件应用程序的基础,它包含一个拥有超过一千个对象的对象库,其中许多对象与图形用户界面(GUI)无关。该平台的对象库主要由 XPCOM 组件组成。 1.1 XPCOM 组件的作用 如果没有 XPCOM 组件…

3大实用技巧深度解析:BetterNCM安装器故障排查与性能优化指南

3大实用技巧深度解析&#xff1a;BetterNCM安装器故障排查与性能优化指南 【免费下载链接】BetterNCM-Installer 一键安装 Better 系软件 项目地址: https://gitcode.com/gh_mirrors/be/BetterNCM-Installer 当你在安装BetterNCM插件时遇到各种技术障碍&#xff0c;这往…

5步搞定SillyTavern版本升级:告别烦恼的完整指南

5步搞定SillyTavern版本升级&#xff1a;告别烦恼的完整指南 【免费下载链接】SillyTavern LLM Frontend for Power Users. 项目地址: https://gitcode.com/GitHub_Trending/si/SillyTavern 还在为软件升级而头疼吗&#xff1f;担心升级过程中数据丢失、配置混乱&#x…

实验(三)

实验目的&#xff1a;通过对目标靶机的渗透过程&#xff0c;了解CTF竞赛模式&#xff0c;理解CTF涵盖的知识范围&#xff0c;如MISC、PPC、WEB等&#xff0c;通过实践&#xff0c;加强团队协作能力&#xff0c;掌握初步CTF实战能力及信息收集能力。熟悉网络扫描、探测HTTP web服…

16、深入了解Linux存储与设备管理

深入了解Linux存储与设备管理 RAID示例 在一个简单的RAID配置里,有三个RAID设备,利用两块硬盘上对应的分区来设置 /boot 、 /root 和 /home 分区。由于系统只能从RAID 1设备启动,而不能从RAID 5启动,所以 /boot 分区被配置为RAID 1设备,其他分区则采用更常用的R…

18、Mozilla开发中的命名规范与模块化编程

Mozilla开发中的命名规范与模块化编程 1. 接口前缀与类型报告 在开发中,接口前缀用于标识可供应用程序程序员使用的接口。例如, fix 用于此目的,此外还有 imgI 、 inI 、 jsdI 和 mozI 等前缀,它们分别对应图像、检查器、JavaScript 调试器和 Mozilla 相关,这…

如何获取美股实时行情:Python 量化交易指南

在量化交易领域&#xff0c;美股实时行情数据是构建高效交易策略的核心要素。通过实时 Tick、实时报价、美股历史 K 线、美股历史数据等信息&#xff0c;交易者可以实现精准的市场分析和决策。本文将介绍如何利用股票数据 API、股票数据接口、金融 API、金融行情数据 API 以及股…

PHP 常量

PHP 常量 PHP 是一种广泛使用的开源服务器端脚本语言,它拥有丰富的内置常量和预定义常量,这些常量在编程中扮演着重要角色。本文将详细介绍 PHP 中的常量及其应用。 1. 常量的概念 在 PHP 中,常量是一段不可改变的值,一旦定义后,其值不能被修改。常量通常用于存储那些不…

Chrome搜索替换插件终极指南:免费高效的网页文本批量处理神器

Chrome搜索替换插件终极指南&#xff1a;免费高效的网页文本批量处理神器 【免费下载链接】chrome-extensions-searchReplace 项目地址: https://gitcode.com/gh_mirrors/ch/chrome-extensions-searchReplace 还在为网页文本修改而烦恼吗&#xff1f;chrome-extensions…

15、深入探索Vim寄存器:复制粘贴的高级技巧

深入探索Vim寄存器:复制粘贴的高级技巧 1. 复制粘贴初体验与问题发现 在Vim中进行复制粘贴操作时,可能会遇到意想不到的情况。例如,我们先使用 yiw 复制了单词 “collection”,之后执行 diw 删除了另一个单词 “somethingInTheWay”,再使用 P 命令粘贴时,预期粘贴…

基于C#的FTP客户端实现方案

基于C#的FTP客户端实现方案&#xff0c;整合了多种协议特性和工程优化&#xff0c;支持文件传输、目录操作及异常处理&#xff1a;一、核心类实现&#xff08;支持被动模式/二进制传输&#xff09; using System; using System.IO; using System.Net; using System.Net.Sockets…

16、Vim 复制粘贴与宏操作技巧全解析

Vim 复制粘贴与宏操作技巧全解析 1. 复制粘贴基础及系统剪贴板交互 在 Vim 中,复制和粘贴操作是常见的文本处理需求。 p 和 P 命令在粘贴多行文本区域时表现出色,但对于短字符文本, <C - r>{register} 映射更为直观。 当涉及与系统剪贴板交互时,除了 Vim 内…

springboot 项目 从jdk 8 升级到jdk21 会面临哪些问题

Spring Boot 项目从 JDK 8 升级到 JDK 21&#xff08;长期支持版 LTS&#xff09;&#xff0c;会面临哪些问题。 主要就是API变更、框架适配、第三方依赖、构建工具配置 问题。springboot项目从1.8到21面临的问题一、JDK API 变更导致的问题JDK 8 到 21 有大量 API 废弃、移除或…

Linux学习日记21:读写锁

一、前言前面我们学习了死锁的相关知识&#xff0c;今天我们来学习读写锁的相关知识。二、读写锁读写锁是 Linux 系统中一种支持并发读、独占写的同步机制&#xff0c;核心设计目标是提高读多写少场景下的并发性能&#xff0c;解决互斥锁&#xff08;mutex&#xff09;在多读场…

ArcGIS中的字段类型

数字可存储为以下数值数据类型中的一种类型&#xff1a; Short - 短整型&#xff08;16 位&#xff09; Long - 长整型&#xff08;32 位&#xff09; Big integer - 大整型&#xff08;64 位&#xff09; Float - 单精度&#xff08;32 位&#xff09;浮点数 Double - 双精度…

《Ionic Select》深度解析:从入门到精通

《Ionic Select》深度解析:从入门到精通 引言 随着移动应用的普及,前端开发技术也在不断进步。Ionic框架作为一款优秀的移动端开发框架,因其丰富的组件和便捷的开发方式受到了广泛关注。其中,Ionic Select组件作为一款强大的选择器控件,极大地丰富了应用的用户体验。本文…

大数据领域数据仓库的流处理框架选型

大数据领域数据仓库的流处理框架选型关键词&#xff1a;数据仓库、流处理、Apache Kafka、Apache Flink、Apache Spark、实时计算、批流一体摘要&#xff1a;本文深入探讨大数据领域中数据仓库的流处理框架选型问题。我们将从流处理的基本概念出发&#xff0c;分析主流流处理框…