首页 > 解决方案 > C如何将指针传递到文件中的位置以进行读取

问题描述

如果有一个给定的文件 Ex:

abc def ghijk

并希望将文件的指针传递给函数 ex:

void myfunc(FILE * myfile)

如何让文件中的指针不指向第一个字符(在本例中为 a),而是指向两个空格后的第一个字符(在本例中为 g)?例如身份证通行证:

myfunc(myfile.charat(9)) //or something

然后在 myfunc() 中,第一个 getc 调用将返回“g”。

标签: cfilepointers

解决方案


您正在寻找功能fseek()。写吧

fseek(myfile, 9, SEEK_SET);

在传递myfile给您的函数之前。您可能想检查返回值,以便知道设置位置是否成功。


顺便说一句,不要将“文件位置指示器”(有时称为“文件指针”)与“指向 a 的指针”混淆FILE。它们是不同的东西。文件位置指示符存储在内部某处FILE(或者,更有可能存储在与 相关联的某些操作系统对象中FILE),以知道接下来要读取或写入文件中的哪个位置。FILE *另一方面是您的(stdio-internal)FILE结构的内存位置。


推荐阅读