Sto utilizzando una libreria che sta stampando un messaggio di avviso su cout
o cerr
. Non voglio che questo messaggio di avviso raggiunga l'output del mio programma. Come posso prendere questo output e inserirlo in /dev/null
o simile?Reindirizzamento dell'output della funzione a/dev/null
MWE:
#include <iostream>
void foo()
{
std::cout << "Boring message. " << std::endl;
};
int main()
{
foo();
std::cout << "Interesting message." << std::endl;
return 0;
}
L'output dovrebbe essere:
Interesting message.
Come devo modificare main
per ottenere il risultato desiderato? (foo
non deve essere modificato.)
Ho provato ad utilizzare freopen()
e fclose(stdout)
come suggerito in questa domanda How can I redirect stdout to some visible display in a Windows Application?. Il risultato è che non viene stampato nulla.
Grazie a questo, tuttavia, ho deciso di contrassegnare l'altra risposta come risposta accettata. – Unapiedra
Grazie a @Unapiedra. Le buone maniere sono sempre piaciute :) – wreckgar23
Potrei suggerire di salvare lo stato corrente tramite 'rststate' e poi resettarlo in seguito? Questo è un po 'più sicuro della cancellazione dello stato del flusso. – SirGuy