Извините за мой разбитый английский.
Я только начал изучать кодирование, поэтому практически ничего не знаю об этом.
Я пытаюсь создать программу, в которую вы вставляете файл данных, используя scanf в c и печатаете в gnuplot.
Программа, которую я создал, выглядит следующим образом.
#include <stdio.h>
int main(){
char filename[10];
FILE *fp;
printf("the name of the file?\n");
scanf("%s", &filename);
fp=fopen(filename, "r");
fclose(fp);
FILE *gp;
gp=popen("gnuplot -persist", "w");
fprintf(gp, "set autoscale x\n");
fprintf(gp, "set autoscale y\n");
fprintf(gp, "filename=%s", &filename);
fprintf(gp, "gnoplot \"filename\" using 1:2 w p\n");
pclose(gp);
return 0;
}
, и результат выглядит следующим образом.
bash-4.1$ ./a.out
the name of the file?
data11.dat
p�gnoplot "filename" using 1:2 w p
^
line 0: invalid character
и данные, которые я пытался построить, выглядят следующим образом.
1 3
2 4
3 5
4 5
5 7
Я обнаружил, что вы можете построить данные, используя while (fscanf), но проблема в том, что я должен нанести другую функцию в дополнение к этим данным на одном изображении.
Я много гуглил, но не могу найти решение.
Пожалуйста, помогите мне!
*) Хорошо, были некоторые хорошие предложения от @Gill Bates и @melpomene, поэтому я отредактировал свой код и снова извинился.Результат кажется немного лучше, но не идеальным.Спасибо, ребята
#include <stdio.h>
int main(){
char filename[30];
FILE *fp;
printf("the name of the file?\n");
scanf("%s", &filename);
fp=fopen(filename, "r");
fclose(fp);
FILE *gp;
gp=popen("gnuplot -persist", "w");
fprintf(gp, "set autoscale x\n");
fprintf(gp, "set autoscale y\n");
fprintf(gp, "filename=%s", &filename);
fprintf(gp, "plot \"filename\" using 1:2 w p\n");
pclose(gp);
return 0;
}
результат
bash-4.1$ ./a.out
the name of the file?
data11.dat
line 0: undefined variable: data11
Я думаю, мне нужно выяснить, как вызвать файл данных с c на gnuplot.
**) Iдумаю, что я решил проблему, используя заговор '-'