gpt4 book ai didi

c - 将每行末尾的元素追加到文件中

转载 作者:太空宇宙 更新时间:2023-11-04 01:23:08 25 4
gpt4 key购买 nike

我想将元素逐行追加到文件中,而不是文件末尾。我写了这段代码,但结果是我只能在文件末尾追加元素。

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

int main(void)
{
static const char filename[] = "m.txt";
FILE *file = fopen(filename, "r+a");
char *a = "ok";

if (file != NULL)
{
char line[128]; /* or other suitable maximum line size */

while (fgets(line, sizeof line, file) != NULL) /* read a line */
{
fputs(a, file); /* write the line */
}
fclose(file);
}
else
{
perror(filename); /* why didn't the file open? */
}
return 0;
}

有些回答提到了buffer。
我对这里的缓冲区有点困惑。这是否意味着我必须将不止一行读入内存然后修改它们? buffer 和 Java 中的 BufferedReader 类一样吗?

最佳答案

您需要一次读取每一行,根据需要修改它,然后将整行重写到一个新文件。然后,当您阅读了整个文件后,您将新文件重命名为旧文件。

或者您将整个文件读入内存,例如读入一个数组,数组的每个元素一行,修改行,并覆盖文件。

修改可变长度文本文件的问题在于您需要将所有数据移动到插入点之后,这在文件中不容易做到。这就是为什么将整个文件读入内存并在那里进行修改,或者使用一个临时文件然后重命名会更容易。

关于c - 将每行末尾的元素追加到文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36792042/

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