news 2026/9/23 15:21:14

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

作者头像

张小明

前端开发工程师

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/9/23 6:20:46

LobeChat能否对接Shopify?电商客服机器人集成方案

LobeChat能否对接Shopify&#xff1f;电商客服机器人集成方案 在今天的跨境电商战场中&#xff0c;响应速度就是转化率。一位顾客深夜下单后发来消息&#xff1a;“我的订单 #1001 到哪了&#xff1f;” 如果等到第二天才收到人工回复&#xff0c;很可能就失去了这位客户。而如…

作者头像 李华
网站建设 2026/9/24 0:33:08

19、Vim 搜索与匹配技巧全解析

Vim 搜索与匹配技巧全解析 正则表达式开关 在进行搜索时,创建正则表达式是一项常见需求。在非常非魔术搜索(very nomagic search)中创建正则表达式虽可行,但由于要对每个符号进行转义,操作起来比较麻烦。一般规则是:若要搜索正则表达式,使用 \v 模式开关;若要搜索逐…

作者头像 李华
网站建设 2026/9/23 22:42:52

LobeChat股票行情数据获取与展示

LobeChat 股票行情数据获取与展示 在金融信息快速迭代的今天&#xff0c;投资者对实时、精准且易于理解的股票行情数据需求愈发迫切。传统的金融终端虽然功能强大&#xff0c;但操作复杂、学习成本高&#xff1b;而普通用户更希望像聊天一样&#xff0c;随口问一句“宁德时代现…

作者头像 李华
网站建设 2026/9/22 6:56:40

记录宴会排查

1.大概能看出来是前后端数据不一致&#xff0c;因为有错误码&#xff0c;但是没看出来为啥。2.宴会数据是在中心服&#xff0c;客户端在宴会界面断开后&#xff0c;没有请求Info, 给客户端同步消息时&#xff0c;客户端已经断线&#xff0c;导致不一致&#xff0c;客户端连上后…

作者头像 李华
网站建设 2026/9/22 14:32:57

LobeChat消费者行为预测模型

LobeChat消费者行为预测模型 在电商运营的日常中&#xff0c;一个常见的场景是&#xff1a;市场经理打开电脑&#xff0c;输入“帮我看看用户U12345最近有没有复购可能&#xff1f;”几秒钟后&#xff0c;系统不仅列出了该用户的浏览轨迹和加购记录&#xff0c;还自动生成了一段…

作者头像 李华
网站建设 2026/9/24 4:32:17

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

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

作者头像 李华