news 2026/5/2 18:06:38

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

作者头像

张小明

前端开发工程师

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/5/2 3:40:58

Day15 不平衡数据集的处理

浙大疏锦行 一、数据准备与基线模型 # 先运行之前预处理好的代码 import pandas as pd import pandas as pd #用于数据处理和分析&#xff0c;可处理表格数据。 import numpy as np #用于数值计算&#xff0c;提供了高效的数组操作。 import matplotlib.pyplot as plt…

作者头像 李华
网站建设 2026/5/2 7:31:08

如何快速掌握B站视频下载:DownKyi完整配置使用指南

如何快速掌握B站视频下载&#xff1a;DownKyi完整配置使用指南 【免费下载链接】downkyi 哔哩下载姬downkyi&#xff0c;哔哩哔哩网站视频下载工具&#xff0c;支持批量下载&#xff0c;支持8K、HDR、杜比视界&#xff0c;提供工具箱&#xff08;音视频提取、去水印等&#xff…

作者头像 李华
网站建设 2026/5/2 3:16:55

11、Vim 文件操作与移动技巧全解析

Vim 文件操作与移动技巧全解析 1. 使用‘:find’按文件名打开文件 在 Vim 中,通常可以使用 :edit 命令通过提供完整路径来打开文件。但当项目中的文件嵌套在多个目录中时,每次都输入完整路径会很繁琐。这时, :find 命令就派上用场了,它允许我们仅通过文件名来打开文件…

作者头像 李华
网站建设 2026/5/1 16:19:42

24、Vim开发利器:ctags与Quickfix List的高效使用

Vim开发利器:ctags与Quickfix List的高效使用 在软件开发过程中,高效的代码导航和错误处理是提高开发效率的关键。Vim作为一款强大的文本编辑器,提供了丰富的工具和功能来满足这些需求。本文将介绍Vim中两个重要的功能:使用ctags进行代码索引和导航,以及利用Quickfix Lis…

作者头像 李华
网站建设 2026/4/29 10:58:55

VNote 笔记神器:快速上手与个性化配置指南

VNote 笔记神器&#xff1a;快速上手与个性化配置指南 【免费下载链接】vnote 项目地址: https://gitcode.com/gh_mirrors/vno/vnote 快速了解 VNote&#xff1a;你的专属 Markdown 笔记平台 项目核心亮点 VNote 是一款基于 Qt 框架开发的免费开源 Markdown 笔记应用…

作者头像 李华
网站建设 2026/5/1 16:35:31

Locale Emulator使用指南:三步解决软件区域兼容问题

Locale Emulator使用指南&#xff1a;三步解决软件区域兼容问题 【免费下载链接】Locale-Emulator Yet Another System Region and Language Simulator 项目地址: https://gitcode.com/gh_mirrors/lo/Locale-Emulator 还在为日文游戏乱码、韩文软件崩溃而烦恼吗&#xf…

作者头像 李华