2014-04-10 4 views
0

Я пытаюсь создать файл данных и построить его с помощью Gnuplot. Проблема заключается в том, когда я держу Nstep ниже 348 я получаю ошибкуНедопустимый диапазон Gnuplot и C "x"

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

Я не могу повторить свою ошибку, как вы не включать полный исходный код (функция Fx и определения от pos и v). Вы звоните не так близко. Вы должны позвонить fclose() (это также приведет к ручке файла).

fclose(pipe) 

И не

close(pipe) 

Вы можете явно очистить данные, вызвав fflush().

Смежные вопросы