Heim >Backend-Entwicklung >C++ >Können Sie die Standardausgabe (stdout) und den Standardfehler (stderr) in eine Zeichenfolge in C umleiten?
stdout/stderr in einen String umleiten
Viele Diskussionen drehten sich um die Umleitung von stdout/stderr in eine Datei. Ist es jedoch möglich, diese Ausgabe in einen String umzuleiten?
Lösung
Ja, eine Umleitung auf ein std::stringstream-Objekt ist möglich:
<code class="cpp">std::stringstream buffer; std::streambuf * old = std::cout.rdbuf(buffer.rdbuf()); std::cout <p>Um ein automatisches Zurücksetzen des Puffers sicherzustellen, sollten Sie die Verwendung einer Schutzklasse in Betracht ziehen:</p> <pre class="brush:php;toolbar:false"><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>
Das obige ist der detaillierte Inhalt vonKönnen Sie die Standardausgabe (stdout) und den Standardfehler (stderr) in eine Zeichenfolge in C umleiten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!