В предыдущем сообщении не то в командной строке написал, там не хватает пути к gnuplot-файлу в конце:
(Оффтоп)
gnuplot -e "f_in='Dir/InputFileName.txt'; f_out='Dir/OutputFileName.txt'; S = 2;" MyGnuplotGraphCode.gnu
gnuplot -p plot.plt
Можно ещё через pipe вызывать..
(Оффтоп)
Код:
void Console::exec(const char *command, std::vector<char> &out)
{
FILE *pipe;
// запуск команды и открытие трубы для чтения
#ifdef WIN32
pipe = _popen(command, "r");
#else
pipe = popen(command, "r");
#endif
if(!pipe)
{
std::cerr << "error: cant open pipe to execute a command \"" << command << "\"" << std::endl;
return;
}
// чтение вывода из трубы
for(;;)
{
char c;
if(fscanf(pipe, "%c", &c) == EOF)
break;
else
out.push_back(c);
}
// закрытие трубы
#ifdef WIN32
_pclose(pipe);
#else
pclose(pipe);
#endif
}
И если написать в gnuplot-коде "set output" (без аргумента), то картинка вывалится в бинарном виде на консоль, откуда её можно прочитать через pipe, то есть, минуя запись на диск, можно сразу получить буфер с изображением и отобразить график на экране стандартными средствами.
Иногда удобнее основной gnuplot-код хранить в виде файла, а через программу передавать только некоторые аргументы (через ключ -e, как писал в предыдущем сообщении), в виде некоторого кода, который вставится в начало к основному коду. Тогда в большинстве случаев не нужно будет перекомпилировать, чтобы что-то подправить. (Повторяюсь)
Короче, конфетка, а не прога.