fgetc-关于缓冲区的疑惑(C语言)

问题描述

关于缓冲区的疑惑(C语言)

例如,我在屏幕上输入了ab回车后,缓冲区里就有a,b,'n'这3个可用字符,我用一个getchar()读取了第一个a,再用一个getchar()就不会读取到a了,而是b,我想问的是:第一个getchar()读取的a去哪里了?它还在缓冲区,只是变的不可用,还是消失了,还是去了CPU里面的什么地方去了。。。。。

这个问题由来是因为我在学文件的时候,rewind()函数让我联想起来的。比如一个文本文件打开后,用fgetc读取文件里的第一个字符,用rewind后,下一个fgetc又可以读取文件里的第一个字符。困惑由此而生。

解决方案

使用一次,指针就会移动一位,所以下次再读,就是第二个字符了

解决方案二:

被后一个值覆盖了。好比
int i = 1;
i = 2; //此时1去哪里了?答案是没了。

时间: 2024-11-18 09:28:21

fgetc-关于缓冲区的疑惑(C语言)的相关文章

汇编语言第4周学生总结反馈

汇编语言程序设计课到第4周.这周的课后总结中,让同学们写下"我的疑惑".这倒好,真引出了一大堆好问题,其实,这也就是大家学习的最真实情况. 为同学们的解答公布如下.下一周,老贺不做这种一对多的事情了,我们开启互评模式,靠同学们的多对多,完成更有意义的深入交流. 学号 学生小结 老师点评 (14)1147 我得到的知识: loop指令和[bx]指令的运用及其相关的内容,还有源程序文件.目标文件和可执行文件的相互转换.我得到的技能: 用editplus去编写源程序,使用masm进行编译.我

linux下的webserver BOA及CGIC库的使用指南(转帖)

我把网页挂载到nfs 下面的文件中(需要新建一个文件www ),不过这样很方便! 安装过程 ========================================================== 1 )在www.boa.org 下载boa-0.94.13.tar.gz 并解压 # tar -zxvf boa-0.94.13.tar.gz 2 )在src 目录下运行./configure 3 )生成Makefile 文件,修改 CC = arm-linux-gcc CPP = arm

在asp网站上添加了一个右侧悬浮客服代码,添加后网页上下段之间有个间隙,位置异常,请大家指点,谢谢!

问题描述 在asp网站上添加了一个右侧悬浮客服代码,添加后网页上下段之间有个间隙,位置异常,请大家指点,谢谢! 我在我们网站上添加了悬浮于右侧中部的客服代码,网站是asp代码制作的,该客服代码是由3个文件组成,分别是(1)ggimages文件夹,主要放置客服广告的图片;(2)ggjs文件夹,主要放置js文件,内放置一个top.js文件;(3)网站根目录下放置一个gg.asp的文件,是客服代码的主程序. 存在问题:我在index主页底部引用gg.asp文件,代码如下: <!--#include f

罗杰斯与索罗斯的奥运局

"我生来一贫如洗,但决不能死时仍旧贫困潦倒." 被称为"世界上最伟大投机家"的乔治·索罗斯,就是在这样赌性十足的人生信条下,一次又一次地凶狠出击,令资本市场闻风丧胆.而号称曾与索罗斯共同创办量子基金的吉姆·罗杰斯,也不断地对中国股市指指点点.自从北京申办成功的那一天起,围绕在中国经济政策的走向上,国际炒家就押下了大量的赌注,他们几乎运用了一切可以运用的手段,目的就是赢得奥运赌局最后的胜利. 一个唱多一个唱空 吉姆·罗杰斯,这个让中国股民耳熟能详的名字,不光是因为传说

c语言-求助!!!关于C里scanf %s %c和结构体之间的疑惑!!!

问题描述 求助!!!关于C里scanf %s %c和结构体之间的疑惑!!! 最近在编一个学生成绩管理系统,然后就发现了一个问题..... scanf("%s %s %c ",name,stunum,&sex); 在运行时输入Xiaoming 2015000000 F 输出的stunum是2015000000, sex是F 但是把语句改成 scanf("%s %s %c ",student[0].name,student[0].stunum,&stud

Go语言中关闭带缓冲区的频道实例分析_Golang

本文实例分析了Go语言中关闭带缓冲区的频道.分享给大家供大家参考.具体分析如下: Go语言提供了两种频道,带缓冲区和不带缓冲区的.不带缓冲区的频道,发送和接收是同步的,必须接收端接收了消息,发送端才能从发送调用中解脱.带缓冲区的频道,在缓冲区满之前,发送和接收是异步的,发送端的发送操作只保证把消息放入缓冲区. Go的频道是可以关闭的,关闭频道的目的是让接收端知道不会再有消息从这个频道进入,我们可能会用某个频道的关闭来表示某种状态的终结. 当我们关闭一个带缓冲区的频道时,如果缓冲区中还有消息,接收

swift-Swift语言初始化加!的疑惑

问题描述 Swift语言初始化加!的疑惑 var nsUrl: NSURL = NSURL(string: url)! 我是想知道 上面代码的!是上面意思 发现很多地方都会有这种写法 解决方案 NSURL是一种类型,上面的nsurl定义了一下NSURL类型

关于C语言二重指针的疑惑求解

问题描述 关于C语言二重指针的疑惑求解 程序如下,十分简短: #include void main(){ int a[3][4]={{1,2,3,4},{10,20,30,40},{100,200,300,400}}; printf("&a==%d ",&a); printf("a==%d ",a); printf("&a[0]%d ",&a[0]); printf("a[0]==%d ",a[

c语言缓冲区的问题,请懂的人指导一下

问题描述 c语言缓冲区的问题,请懂的人指导一下 #include char outbuf[BUFSIZ]; int main() { setbuf(stdout,outbuf); puts("Tis is a test of buffered output.n"); puts(outbuf); fflush(stdout); puts(outbuf); return 0; } 输出结果: This is test of buffered output. This is test of