采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
char temp[BUFFER_LENGTH] while( !in.eof() ) { in.read(temp, BUFFER_LENGTH); …略 } 为什么在这个循环内,in的读操作是按照顺序一块一块来的。并没有指定它的顺序啊,只有循环判断条件。 (我的问题的具体解释:有个文本文件abcdefghijklmn,我将其4个4个读取到内存,在这个循环体内,为什么读操作可以按照顺序的4个4个读取,并没有指定读取的移动,难道不应该是始终只读取前4个如:abcd么?)
不是,文件和IO是以流的形式往前走的,你可以想象成水流朝一个方向前进,直到到水的尽头。简单来说你没有指定顺序,但是C++文件系统会控制当前文件指针的位置和方向。
那是不是可以这样理解:在当前程序里,除非读到文件末尾,不然每次read都是上一次读的末尾位置。
可以通过seek等方式调整读取文件的位置,否则会接着上一次位置往下读,直到文件尾部。
登录后可查看更多问答,登录/注册
一部大片,一段历史,构建C++知识框架的同时重塑你的编程思维
1.2k 12
1.3k 10
1.2k 9
1.0k 9