gpt4 book ai didi

c - 从使用追加模式打开的文件中读取

转载 作者:行者123 更新时间:2023-11-30 15:50:20 24 4
gpt4 key购买 nike

这可能是一个非常愚蠢的问题,但我正在修改别人的代码,似乎我需要从以附加模式打开的文件中读取。我尝试 fseek 到文件的开头,但没有读取任何内容。我知道我可以将模式更改为 rw,但我想知道为什么 fseek 不起作用。在手册页中确实说 write 忽略 fseek 但没有提到 read。

最佳答案

只有一个指针,最初位于文件的开头,但当尝试执行写入操作时,它会移至文件的末尾。您可以使用 fseek 重新定位它或在文件中的任何位置倒回以进行读取,但写入操作会将其移回文件末尾。

当您以附加模式打开时,文件指针在每次写入之前都会返回到文件末尾。您可以使用 fseek 重新定位指针以进行读取,但是一旦您调用写入文件的函数,指针就会返回到文件末尾。

答案在Does fseek() move the file pointer to the beginning of the file if it was opened in "a+b" mode?引用 C 标准的相应部分。

如果您想写入文件中的任意位置,请使用“w+”模式。现有文件将被覆盖。

如果您想最初附加到现有文件,然后 fseek 到任意位置,请使用“r+”,后跟

fseek(f, 0, SEEK_END)

希望有帮助..

关于c - 从使用追加模式打开的文件中读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15826010/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com