Как отправить поток данных из std :: cout в gnuplot?

У меня есть проект на Ubuntu и C ++, и где-то в моем коде есть цикл, который выводит много данных на стандартный вывод (терминал). Среди этих данных есть поле ошибки, которое я хочу видеть в процессе эволюции цикла. Для ясности рассмотрим код ниже:

while (error > epsilon) {
//do stuff
std::cout<<foo1<<std::endl;
std::cout<<foo2<<std::endl;

somehow send error to gnuplot!
//do the rest of the stuff
}

Что я имею в виду, чтобы напечатать ошибка куда-то, например, /dev/null и попробуй гнуплот это. Однако я не уверен, если это возможно, как это сделать, если это возможно, но, прежде всего, я не уверен, что это правильный способ сделать это.

Как правильно выполнить такую ​​задачу?

0

Решение

Вы могли бы использовать stdout для сообщений и stderr для gnuplot, и передайте последний в gnuplot, используя один из советов в Как трубу stderr, а не stdout?. Но это очень нестандартное использование stderrи поэтому это не рекомендуется, за исключением использования временной отладки. Вы также можете просто написать в файл, а затем построить это позже.

Ты можешь использовать popen открыть канал в gnuplot и отправить данные. gnuplot-iostream библиотека поможет здесь (отказ от ответственности: я автор этого).

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]