代码之家  ›  专栏  ›  技术社区  ›  Community wiki

在文件中插入值

  •  1
  • Community wiki  · 技术社区  · 1 年前

    在下面的代码中,我已经将值1-9保存在Excel文件中,我想在“4”和“5”之间插入一个“a”。我已将指针设置到位置7,但它仍在末尾插入。请帮我理解这一点。

    FILE *ExcelFile = fopen("testdata.csv","a");
     if (ExcelFile == NULL)
     return -1;
     fprintf(ExcelFile,"1 2 3 4 5 6 7 8 9");
     fseek (ExcelFile, 7, SEEK_SET );
     //printf("pos is %ld bytes\n", pos);
     fprintf(ExcelFile,"a");
     fclose(ExcelFile);
    
    2 回复  |  直到 13 年前
        1
  •  3
  •   qbert220    14 年前

    这不起作用的原因是,您正在打开要追加的文件(fopen调用中的“a”标志)。每当您写入文件时,您写入的数据总是会被追加。如果您的文件在打开之前不存在,请使用 fopen("testdata.csv","w") 相反

        2
  •  1
  •   Armen Tsirunyan    14 年前

    你不能只是将值“插入”到一个文件中。您必须打开一个新文件,复制第一个文件的第一部分,然后复制您的值,然后复制其余部分,然后用新文件替换旧文件,或者,如果文件很小,则将其读入内存,清除文件,然后写入正确的文件。