Maison >développement back-end >C++ >Pourquoi mon `std::cout` ne s'imprime-t-il pas ?
En C, le flux de sortie standard (std::cout) est mis en mémoire tampon, ce qui signifie qu'il accumule les données avant de les envoyer au périphérique de sortie réel. Ce comportement peut conduire à des situations inattendues où std::cout ne semble rien imprimer.
Pour garantir que les données soient affichées immédiatement, il est essentiel de vider le flux après lui avoir écrit. Ceci peut être réalisé en utilisant le manipulateur de flux std::endl, qui génère à la fois un caractère de nouvelle ligne et vide le flux.
std::cout << "Hello" << std::endl;
Alternativement, le manipulateur de flux std::flush peut être utilisé pour vider le flux sans en affichant des caractères supplémentaires.
std::cout << "Hello"; std::cout.flush();
Si le vidage ne résout pas le problème, vous peut vérifier l'état du flux pour déterminer s'il est opérationnel. Plusieurs fonctions membres sont disponibles à cet effet, notamment :
Considérez le programme suivant :
#includeint main() { std::cout << "Hello" << std::endl; return 0; }
Si le programme est exécuté, "Bonjour" s'affichera comme prévu. Cependant, si le std::endl flush est supprimé, la sortie peut ne pas apparaître avant la fin du programme.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!