stdout/stderr을 문자열로 리디렉션
stdout 및 stderr을 파일로 리디렉션하는 것은 일반적인 작업이지만 문자열로 출력할 수도 있습니다. ?
답변:
예, stdout 및 stderr을 std::stringstream으로 리디렉션하는 것이 가능합니다:
<code class="cpp">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"</code>
버퍼를 보장하려면 항상 재설정되며 가드 클래스를 사용할 수 있습니다:
<code class="cpp">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; };</code>
위 내용은 stdout 및 stderr을 C의 문자열로 리디렉션할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!