news 2026/1/13 2:37:07

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

作者头像

张小明

前端开发工程师

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/1/6 13:13:33

[CISCN2019 华北赛区 Day1 Web2]ikun

第一次做pickle反序列化 1.打开题目是这个页面 信息收集一下 目录扫描无可用信息、翻看源码&#xff0c;发现提示 感觉这个lv6就是提示&#xff0c;因为首页面下方对应的就是等级 寻找一下lv6 这里发现他的页数是可控的 然后lv等级数也是有规则的 那么只需要写个脚本&#x…

作者头像 李华
网站建设 2025/12/31 12:16:51

LobeChat投诉处理建议生成引擎

LobeChat 投诉处理建议生成引擎&#xff1a;从架构到落地的全链路实践 在客户服务领域&#xff0c;每一次客户投诉都是一次信任危机&#xff0c;也是一次改进机会。但现实是&#xff0c;许多企业仍依赖人工客服逐条阅读、理解并回应投诉内容——这种方式不仅响应慢&#xff0c;…

作者头像 李华
网站建设 2026/1/8 6:13:06

杨建允:AI搜索优化赋能全链路营销的全流程

AI搜索优化的全链路营销正在深刻重塑企业获取用户和提升转化的策略&#xff0c;其影响贯穿用户触达、互动、转化和留存的各个环节。 用户认知与行为变革&#xff1a; AI搜索的普及正改变用户获取信息的习惯&#xff0c;从主动“搜索”转向被动“问答”。用户通过自然语言向AI提…

作者头像 李华
网站建设 2026/1/4 0:42:15

AI原生应用中的长尾用户意图理解解决方案

AI原生应用中的长尾用户意图理解解决方案 关键词&#xff1a;AI原生应用、长尾用户意图、意图理解、小样本学习、多模态融合、持续学习、自然语言处理 摘要&#xff1a;在AI原生应用&#xff08;如智能助手、个性化推荐系统&#xff09;中&#xff0c;用户不再满足于“标准化对…

作者头像 李华
网站建设 2026/1/6 6:45:01

23、Vim 多文件查找替换与全局命令使用技巧

Vim 多文件查找替换与全局命令使用技巧 在 Vim 编辑器中,我们常常会遇到需要在多个文件中进行查找替换,或者对匹配特定模式的行执行操作的需求。下面将详细介绍如何在 Vim 中实现这些功能。 多文件查找替换 在项目中,有时我们需要将某个特定的字符串替换为另一个字符串。…

作者头像 李华
网站建设 2026/1/3 15:10:35

如何避免MySQL死锁?资深DBA的9条黄金法则

死锁是数据库里很常见的问题&#xff1a;两个或多个事务互相等待对方释放锁&#xff0c;结果谁也动不了。MySQL的InnoDB引擎会自己自动检测死锁&#xff0c;并且回滚其中一个事务来解决&#xff0c;但这种情况如果经常遇到的话&#xff0c;会很影响性能和用户体验。其实&#x…

作者头像 李华