news 2026/7/7 10:29:54

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
一段代码带你理解输入缓冲区

本文将多次使用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;

}

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/7 8:45:32

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

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

作者头像 李华
网站建设 2026/7/7 11:52:14

12、Vim高效操作:文件内导航技巧

Vim高效操作:文件内导航技巧 1. 让手指停留在基准行 Vim是为盲打用户优化的。学会不把手从基准行移开就能移动,这样你就能更快速地操作Vim。 作为盲打者,你首先要知道手指应放在基准行。在Qwerty键盘上,左手手指放在a、s、d、f键上,右手手指放在j、k、l、;键上。处于这…

作者头像 李华
网站建设 2026/7/7 13:41:21

从理论到代码:手把手教你实现AI原生混合推理模型

从理论到代码:手把手教你实现AI原生混合推理模型 关键词:AI原生混合推理模型、理论基础、代码实现、推理流程、应用场景 摘要:本文旨在带领大家从理论层面深入了解AI原生混合推理模型,再通过详细的代码示例手把手教大家实现这一模型。我们会逐步分析模型的核心概念、原理架…

作者头像 李华
网站建设 2026/7/7 7:06:20

TegraRcmGUI:3分钟学会Switch自制系统注入的终极指南

TegraRcmGUI&#xff1a;3分钟学会Switch自制系统注入的终极指南 【免费下载链接】TegraRcmGUI C GUI for TegraRcmSmash (Fuse Gele exploit for Nintendo Switch) 项目地址: https://gitcode.com/gh_mirrors/te/TegraRcmGUI TegraRcmGUI是一款专为Nintendo Switch打造…

作者头像 李华
网站建设 2026/7/5 8:33:26

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

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

作者头像 李华
网站建设 2026/7/7 18:56:54

VL6180X ToF传感器原理图设计,已量产(距离传感器)

目录 1、电源电路 2、电平转换 3、CE 脚的 “隔离” 小技巧 4、布局布线的几个细节 最近做一款近距离精准测距的手持设备,需要 5-200mm 范围内的稳定测距,还得顺带读环境光数据 —— 选来选去,最终敲定了 ST 的 VL6180X:FlightSense™技术能避开反射率的干扰,2.8V 的工…

作者头像 李华