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

既然get(c)函数是从文件中读取一个字符,如图,为什么这种语句可以完整地读取整个文件的内容啊,为什么不是你一直在重复读取文件中的第一个字符?是因为条件eof吗?



神不在的星期二
浏览 90回答 2
2回答

慕村225694

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

慕田峪7331174

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