Gnuplot和C“x范围无效”

Gnuplot和C“x范围无效”,c,gnuplot,C,Gnuplot,我试图生成一个数据文件,并用Gnuplot绘制它。问题是,当我将Nstep保持在348以下时,会出现错误 但我保持Nstep高于348,一切正常。我不明白为什么。这是我的C代码: int main(void){ int Nstep = 348; //omitted part... FILE *pipe = fopen("plot.txt", "w+"); while (n<Nstep) { pos[n+1] = pos[n] + v[

我试图生成一个数据文件,并用Gnuplot绘制它。问题是,当我将Nstep保持在348以下时,会出现错误

但我保持Nstep高于348,一切正常。我不明白为什么。这是我的C代码:

int main(void){

    int Nstep = 348;

    //omitted part...

    FILE *pipe = fopen("plot.txt", "w+");

    while (n<Nstep) {
        pos[n+1] = pos[n] + v[n]*h;
        v[n+1] =  v[n] + h * Fx(pos[n]);

        fprintf(pipe, "%d %05.3lf\n", n, v[n]);
        n++;
        } 

    close(pipe);

    system("gnuplot -p -e \"plot 'plot.txt' using 1:2 with lines\"");

    return 0;    
}

我无法复制您的错误,因为您没有包含完整的源函数Fx以及pos和v的定义。你打错电话了。您应该调用fclose,这也将刷新文件句柄

fclose(pipe)
而不是

close(pipe)
可以通过调用fflush显式刷新数据

fclose(pipe)
close(pipe)