为了账号安全,请及时绑定邮箱和手机立即绑定

如图,读取整个文件内容的原理到底是什么?

如图,读取整个文件内容的原理到底是什么?

C++ C
神不在的星期二 2022-11-03 14:10:41
既然get(c)函数是从文件中读取一个字符,如图,为什么这种语句可以完整地读取整个文件的内容啊,为什么不是你一直在重复读取文件中的第一个字符?是因为条件eof吗?
查看完整描述

2 回答

?
慕村225694

TA贡献1880条经验 获得超4个赞

操作系统有文件指针的概念,以读模式打开一个文件时,文件指针指向文件的起始位置,调用读取函数会使文件指针同步后移,读取函数总是从文件指针当前指向的位置读取数据。

查看完整回答
反对 回复 2022-11-08
?
慕田峪7331174

TA贡献1828条经验 获得超13个赞

y1.get(j1); 从 文件指针 当前指向的位置 读入一个字符,字符存放在j1中,文件指针 也会加1 指向 下一个待读字符。
所以,在while(){} 循环过程中,每次从 当前指向的位置 读 一个字符,文件指针 推进一格,这样从 文件指针初始位置 一直往下走,直到读到 文件结束符 EOF 退出循环。
文件 open 时,文件指针初始位置是文件开始处,
j1 只能存一个字符,由于及时输出 cout << j1; 到屏幕,所以再读时,j1可用来存放新的字符并输出。在用户看来读了全文件,输出了全文件。
!y1.eof() 意思是 当 y1 里的字符 不是 文件结束符 EOF 时 一直循环。

查看完整回答
反对 回复 2022-11-08
  • 2 回答
  • 0 关注
  • 87 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信