gpt4 book ai didi

c - 覆盖C中文件的内容

转载 作者:行者123 更新时间:2023-11-30 14:48:24 26 4
gpt4 key购买 nike

我尝试使用 C 语言中的 fwrite()fseek() 覆盖文件内容,但不起作用。

文件大小为30。我想通过覆盖文件中的位置10 ~ 13来写入“ABCD”。所以我在下面编写了程序。

FILE *fp = fopen("file.txt", "a+");
fseek(fp, 10, SEEK_SET);
fwrite("ABCD", 1, 4, fp);

但是“ABCD”写在文件中的位置30之后。我发现了一些使用二进制模式的建议(例如 "ab+"),但是 'b' is ignored on all POSIX conforming systems .

我该怎么做?

最佳答案

使用"r+"模式打开文件,而不是"a+"(二进制的b是可选的,与POSIX基本无关系统):-

#include <stdlib.h>
#include <stdio.h>

int main(void){
FILE *fp = fopen("file.txt", "r+");
fseek(fp, 10, SEEK_SET);
fwrite("ABCD", 1, 4, fp);
fclose(fp);

return 0;
}

关于c - 覆盖C中文件的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50428327/

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