关于缓冲区的一些个人理解

博客作者解析了缓冲区如何比喻为超市仓库,探讨了scanf和getchar在数据存储中的作用,并揭示了嵌套scanf在循环中的行为。通过实例分析了一行字符中查找重复字符的问题,展示了缓冲区在程序自动化中的关键作用。
摘要由CSDN通过智能技术生成

最近刚刚接触了这个东西,不知道理解的有没有错误,希望各位帮忙指出

缓冲区在我看来就好像是一个超市的仓库,我们把东西存进去,等货架上的货物空了以后再从仓库中取出

scanf以及getchar就是货物存入的工具

对于这个理解我有提过一次

两个相邻的scanf后一个总是会被跳过?还在为这个发愁?我来为你解答!_佳子81_的博客-CSDN博客是一枚努力学习编程的小佳子呀!!!https://blog.csdn.net/m0_74403994/article/details/128043683?spm=1001.2014.3001.5502但是今天早上我在使用while循环嵌套scanf()的时候出现的状况又引起了我新的思考

该例题为判断一行字符中是否存在相同的字符,以及输出该字符。

代码如下

#include <stdio.h>
#include <math.h>
int main()
{
	char a,b;
	printf("输入一行字符:");
	b=getchar();                 //输入一串字符,但是getchar只读取第一个数据,剩下的存入缓冲区中
	printf("%c",b);
    while((a=getchar())!='\n')            //读取缓冲区中的数据,利用循环重复读取
    {
    	if(a==b)                           
    	{
    		printf("same character %c\n",a);    
    		break;
		}
		b=a;                //如果读取的a不等于b,则把a赋值给b进行下一次比较,依次读取缓冲区的值
	}
	return 0;
}

当scanf()嵌套在像while这样的循环语句中时就会自动读取之前存储在缓冲区中的数据,从而实现整个程序的自动化进行。

说实话在相通之前我真的是百思不得其解,但是现在一整个就是恍然大悟,希望我留下的这些感悟对各位小伙伴学习c有所帮助呀,同时也算是记录我的成长(因为我真的是一个很健忘的人,学过的东西过眼就忘呜呜呜)

See you!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

佳子81_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值