在 C 中的 csv 文件中继续写我离开的地方

Contunue writing where I left off in a csv file in C

我需要在不同的代码部分编写 CSV 列和行 但我无法继续我离开的地方

我可以这样做吗?我怎样才能跳过文件的结尾? 我尝试了 fseek() 但没有成功。 我正在编写我正在处理的类似代码

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


//function declaration
int fonit(int count);

int main(int argc, char const *argv[])
{
    int a=100;
    int b=a/10;
    
    for (int a = 0; a < 10; a++)
    {   
        // row number
        FILE *file;
        file = fopen("fant.csv", "w+");
        // fseek( file,10, SEEK_END);
        fprintf(file, "%d", a);
        fprintf(file, ",");
        fclose(file); 
            
        for (int j = 0; j < 10; j++){
            fonit(j);
        }
        
        FILE *file;
        file = fopen("ant.csv", "w+");
        // fseek( file,10, SEEK_END);
        fprintf(file, "%d", b);
        fprintf(file, ",");
        fprintf(file,"\n");
        fclose(file);
        
    }
    

    return 0;
}

int fonit(int count){
    int k=0;
    for (int i = 0; i < count; i++)
    {
        for (int j = 0; j < 100; j++)
        {
            
            k=j%2;
        }
        
    FILE *file;
    file = fopen("ant.csv", "w+");
    // fseek( file, -10,SEEK_END);
    fprintf(file, "%d", k);
    fprintf(file, ",");
    fclose(file);
    }
    return 0;
}

我完全接受不同的命令或 C++:)

当您想附加到文件而不是覆盖它时(“从我离开的地方继续”),您必须以附加模式而不是写入模式打开文件。 Append 模式追加到文件,而 write 模式覆盖它。因此,解决方法是将您对 fopen 的调用中的 w+ 更改为 a+。我建议你在打开模式下省略加号,因为首先,你根本不从文件中读取(所以不需要它),其次,你不应该使用相同的文件对象来读取 写作,因为这会导致意想不到的行为,因为它很容易让您对当前在文件中的位置感到困惑。相反,如果您必须进行读取 写入,请先以读取模式打开文件,进行读取,然后关闭它。然后,再次以写模式打开它,写你的东西,关闭它。