c - C如何将指针传递到文件中的位置以进行读取
问题描述
如果有一个给定的文件 Ex:
abc def ghijk
并希望将文件的指针传递给函数 ex:
void myfunc(FILE * myfile)
如何让文件中的指针不指向第一个字符(在本例中为 a),而是指向两个空格后的第一个字符(在本例中为 g)?例如身份证通行证:
myfunc(myfile.charat(9)) //or something
然后在 myfunc() 中,第一个 getc 调用将返回“g”。
解决方案
您正在寻找功能fseek()
。写吧
fseek(myfile, 9, SEEK_SET);
在传递myfile
给您的函数之前。您可能想检查返回值,以便知道设置位置是否成功。
顺便说一句,不要将“文件位置指示器”(有时称为“文件指针”)与“指向 a 的指针”混淆FILE
。它们是不同的东西。文件位置指示符存储在内部某处FILE
(或者,更有可能存储在与 相关联的某些操作系统对象中FILE
),以知道接下来要读取或写入文件中的哪个位置。FILE *
另一方面是您的(stdio-internal)FILE
结构的内存位置。
推荐阅读
- java - Pivotal GemFire 多会话的 Spring 会话
- powershell - 网格中的多行
- laravel - Laravel 5.6 队列重启 CPU 使用率
- python-requests - Python - 更改请求参数,使其不以“?=”和“&”开头
- angular6 - 当我在获取带有订阅的数据后调度操作时的无限循环
- c# - 如何比较两个属性组合的两个列表并选择第三个属性不匹配的行?
- json - 我怎样才能解决这个问题?从“[String]”转换为不相关类型“[String : AnyObject]”总是失败
- python - 有上限误差的上限
- python - 将新的 .xlsx 添加到工作表(选项卡)中的现有 .xlsx
- sql - 返回 NULL 的两个值的百分比