как вывести данные в gnuplot, который вы вставили в c, используя scanf - PullRequest
0 голосов
/ 11 июня 2018

Извините за мой разбитый английский.

Я только начал изучать кодирование, поэтому практически ничего не знаю об этом.

Я пытаюсь создать программу, в которую вы вставляете файл данных, используя 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думаю, что я решил проблему, используя заговор '-'

...