2013-10-29 67 views
0

我在ubuntu和C++上有一個項目,在我的代碼中有一個循環可以輸出大量數據到標準輸出(終端)。在這些數據中,有一個錯誤字段,我希望在循環迭代時看到它的發展。爲了清楚起見,請考慮下面的代碼:如何將數據流從std :: cout發送到gnuplot?

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並嘗試GNUPLOT它。但是我不確定是否有可能,如果可能的話怎麼做,但最重要的是,我不確定這是否是正確的方式。

如何以正確的方式執行此類任務?

+0

這不是一個編程問題。我認爲你想要做的事情可以通過管道來完成。類似於:'myprogram | gnuplot' –

+0

@JohnDibling,我的程序正在打印大量的數據。我怎樣才能將許多數字中的其中一個輸出到gnuplot? – Pouya

+0

'grep'(9 more) –

回答

0

您可以使用stdout作爲消息,使用stderr作爲gnuplot,並使用How to pipe stderr, and not stdout?的其中一個提示將後者傳遞給gnuplot。但這是stderr的非標準使用,所以除了臨時調試使用外,不建議這樣做。你也可以寫一個文件,然後再繪製它。

您可以使用popen打開管道到gnuplot併發送數據。 gnuplot-iostream圖書館將在這裏幫助(免責聲明:我是該作者)。