gpt4 book ai didi

c - 在文件中的一行末尾追加文本纯c代码

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

我需要在文件的每一行末尾附加一个文本。我有以下代码:

FILE *tmp_copy = tmpfile();
file = fopen ( argv[2], "rw" );
if ((file != NULL )) {
char line [ 128 ]; /* or other suitable maximum line size */
while( ( fgets ( line, sizeof line, file ) != NULL )) {
fputs(line, tmp_copy);
}
fclose ( file );

rewind(tmp);
char *p;
/* Reopen file now with write permissions */
fopen(argv[2], "w");
while (( p = fgets(line, 1024, tmp))!=NULL) {
//line[strlen(line)-1] = '\0'; /* Clear away newline */
//sprintf(line, "%s %s\n", line, more);
strcpy(line,"true");
//fputs(line, file);
}
fclose(file);
fclose(tmp);
}

}

我已经编辑了我的代码。还是行不通但它不工作。为什么?

最佳答案

我猜您希望该行再次重写到文件中。但是,您不是写入 文件,只是附加到内存中的数据。像这样同时读写文件也是不太可能的,必须分两步完成:

  1. 从原始文件中读取,将需要的文本追加到行中,然后写入临时文件
  2. 从临时文件重命名(或复制)到原始文件

编辑:我的答案的伪代码:

original_file = fopen(original_file_name, "r");
temporary_file_name = tmpnam("dummy");
temporary_file = fopen(temporary_file_name, "w");

while (fgets(line, original_file))
{
remove_trailing_newline(line);
strcat(line, " TRUE\n");
fputs(line, temporary_file);
}

fclose(temporary_file);
fclose(original_file);

rename(temporary_file_name, original_file_name);

关于c - 在文件中的一行末尾追加文本纯c代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12420282/

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