亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將stdout / stderr重定向到字符串

將stdout / stderr重定向到字符串

C++ C
慕尼黑的夜晚無繁華 2019-12-25 10:39:19
以前有很多關于將stdout / stderr重定向到文件的問題。有沒有一種方法可以將stdout / stderr重定向到字符串?
查看完整描述

3 回答

?
蝴蝶不菲

TA貢獻1810條經驗 獲得超4個贊

是的,您可以將其重定向到std::stringstream:


std::stringstream buffer;

std::streambuf * old = std::cout.rdbuf(buffer.rdbuf());


std::cout << "Bla" << std::endl;


std::string text = buffer.str(); // text will now contain "Bla\n"

您可以使用簡單的防護類來確保始終重置緩沖區:


struct cout_redirect {

    cout_redirect( std::streambuf * new_buffer ) 

        : old( std::cout.rdbuf( new_buffer ) )

    { }


    ~cout_redirect( ) {

        std::cout.rdbuf( old );

    }


private:

    std::streambuf * old;

};


查看完整回答
反對 回復 2019-12-25
  • 3 回答
  • 0 關注
  • 1087 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號