Ceci est une question académique.Mise en forme cout cout
sdt::mutex m;
typedef std::lock_guard<std::mutex> G;
void thread1(){
G g(m);
std::cout << std::setw(9);
std::cout << 3.14;
std::cout << std::endl;
}
void thread2(){
G g(m);
std::cout << std::setw(7);
std::cout << 3.14;
std::cout << std::endl;
}
Mon problème est que la mise en forme est lié au flux de sortie, donc je dois mettre toutes les options de formatage jamais inventées sur mon fil si je veux être sûr de la sortie que je produis. Ce qui fonctionnera ou ne fonctionnera pas l'année prochaine. Y at-il un moyen de réinitialiser le formatage par défaut sans tout régler manuellement?
- Sinon, quelles sont les bonnes solutions de contournement?
- Par exemple dois-je créer et garder un
std::ostringstream
localement sur mon fil et écrireoss.str()
àstd::cout
?
- Par exemple dois-je créer et garder un
quelle norme de C++? –
@RichardHodges C++ 14 – Notinlist
Alors, quelle est la question? Peut-être que vous voulez [réinitialiser l'état de 'std :: cout' après avoir manipulé le flux] (https://stackoverflow.com/questions/2273330/restore-the-state-of-stdcout-after-manipulating-it)? – Ron