0

我在文件中有大量数据,但每次我只读取 4096 个元素。因此,当我第二次阅读时,我必须将指针更新为第 4097 个元素。我怎么做?

4

3 回答 3

1
char *p = input;
/* do some code, use p instead of input*/
p = p+4096;
于 2013-09-20T09:01:17.027 回答
1

如果您使用fread()orfscanf()fgetc()从文件中读取,它会自动增加文件指针。您可以使用ftell().

例子:

fread(buf, 4096, 1, fp);   // Call 1
fread(buf, 4096, 1, fp);   // Call 2, just after 1st one

将从 指向的文件中读取 4096 个字节fp,将其存储在buf其中,第二次它将从 byte# 4097 开始读取。
您无需显式递增fp.

于 2013-09-20T09:05:11.793 回答
0
ptr++; 

应该做的伎俩。

其工作方式是 c 隐含地将其理解为内存中的位置 + poitner 指向的数据对象的大小。在 int 的情况下,它将是 sizeOf(int)。=]

于 2013-09-20T09:02:19.250 回答