我一直在使用Petru's logging framework。這是他的部分代碼:C++將格式化數據打印到std :: cout或文件(緩衝)
class Output2FILE
{
public:
static FILE*& Stream() {
static FILE* pStream = stderr;
return pStream;
}
};
這是非常好的,因爲它根本沒有記錄任何行動標準錯誤,但可以事後被設置成任何東西,包括stdout和文件的功能。不過,我認爲這種方法不能用於格式化數據,因爲需要使用fprintf。
因此,我試圖想出類似的東西,默認情況下可以使用stdout,並且可以切換到文件,但使用格式化數據的「< <」運算符。
也許隨着然後做myOutput << "Hello" << 1 << 1.5;
想法沿線東西
std::ostream myOutput(std::cout);
。但是,上面的代碼會讓編譯器抱怨。
什麼是正確的方法?
謝謝!
AFAIK流是不可拷貝 –
乾杯阿爾欽,導致簡單的答案真的。 'std :: ostream&myOutput(std :: cout);' – Cookie