0

我想从具有一定偏移量的文件中读取字节。

我必须在 VB6 和 C++ 中做同样的事情。

例如像这样:

FILE *file =fopen(szFileName,"rb");
fseek( file, iFirstByteToRead, SEEK_SET);
fread(nBytes,sizeof(unsigned char), iLenCompressedBytes, file);

(是的,我知道 nBytes 没有被声明为字节,但我还是将它命名为 nBytes 以保持我的 VB6 命名)。

在 VB6 中我必须使用

Get #iFile, iFirstByteToRead, nBytes

在 VB6 中,第一个字节(使用“Get”时)位于位置 1。这意味着我不得不说

Get #iFile, 1, nBytes

...从文件的最开头读取字节。

我想知道 fseek 是基于 1 还是基于 0。

我是否必须将 iFirstByteToRead 减少 -1 才能获得相同的结果?

我的问题是纯理论性质的,请不要说我的编码不好......

谢谢你。

4

2 回答 2

5

简而言之: a 的fseek偏移量SEEK_SET是从零开始的(例如fseek(your_file, 0, SEEK_SET),将流位置设置为开头)。

于 2013-03-31T15:26:26.963 回答
2

第一个字节位于文件中的偏移量 0 处。

于 2013-03-31T15:26:22.790 回答