我试图生成一个数据文件并用Gnuplot绘制它。问题是当我保持我的Nstep低于348时我得到了错误
line 0: warning: Skipping data file with no valid points plot 'plot.txt' using 1:2 with lines ^ line 0: x range is invalid
但我保持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;
}
plot.txt示例(Nstep = 10)
1 100.000
2 99.000
3 97.000
4 94.010
5 90.050
6 85.150
7 79.349
8 72.697
9 65.252
10 57.079
答案 0 :(得分:0)
我无法复制您的错误,因为您没有包含完整的来源(函数Fx
以及pos
和v
的定义)。你打错了。你应该调用fclose()
(这也会刷新文件句柄)。
fclose(pipe)
而不是
close(pipe)
您可以通过调用fflush()
显式刷新数据。