关于二进制文件拷贝问题

来源:8-12 二进制文件的操作

饿少

2021-06-07

char temp[BUFFER_LENGTH]
while( !in.eof() )
{
in.read(temp, BUFFER_LENGTH);
…略
}
为什么在这个循环内,in的读操作是按照顺序一块一块来的。并没有指定它的顺序啊,只有循环判断条件。
(我的问题的具体解释:有个文本文件abcdefghijklmn,我将其4个4个读取到内存,在这个循环体内,为什么读操作可以按照顺序的4个4个读取,并没有指定读取的移动,难道不应该是始终只读取前4个如:abcd么?)

写回答

1回答

quickzhao

2021-06-07

不是,文件和IO是以流的形式往前走的,你可以想象成水流朝一个方向前进,直到到水的尽头。简单来说你没有指定顺序,但是C++文件系统会控制当前文件指针的位置和方向。

0
2
quickzhao
回复
饿少
可以通过seek等方式调整读取文件的位置,否则会接着上一次位置往下读,直到文件尾部。
2021-06-08
共2条回复

重学C++ ,重构你的C++知识体系

一部大片,一段历史,构建C++知识框架的同时重塑你的编程思维

3884 学习 · 1103 问题

查看课程