Maison > développement back-end > C++ > Pourquoi mon `std::cout` ne s'imprime-t-il pas ?

Pourquoi mon `std::cout` ne s'imprime-t-il pas ?

Linda Hamilton
Libérer: 2024-12-13 04:50:10
original
725 Les gens l'ont consulté

Why Doesn't My `std::cout` Print?

Lorsque std::cout ne s'imprime pas : dépannage des flux mis en mémoire tampon

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.

L'importance du vidage

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;
Copier après la connexion

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();
Copier après la connexion

Vérification de l'état du flux

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 :

  • std::ios::good: Renvoie true si le flux est prêt à être utilisé.
  • std::ios::bad: Renvoie vrai si une erreur fatale s'est produite s'est produite.
  • std::ios::fail: Renvoie vrai si une erreur non fatale s'est produite.

Exemple

Considérez le programme suivant :

#include 

int main() {
  std::cout << "Hello" << std::endl;
  return 0;
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal