Maison  >  Article  >  développement back-end  >  Comment garantir une sortie immédiate en C à l'aide de « std::flush » ?

Comment garantir une sortie immédiate en C à l'aide de « std::flush » ?

DDD
DDDoriginal
2024-11-02 21:04:02865parcourir

How to Ensure Immediate Output in C   Using `std::flush`?

Application de la sortie immédiate en C à l'aide de std::flush

Dans les programmes C, il est courant de rencontrer un scénario dans lequel le texte imprimé sur le l'écran utilisant std::cout n'apparaît pas instantanément. Cela peut être problématique, en particulier lorsque le texte est destiné à fournir un retour en temps réel à l'utilisateur pendant que des calculs de longue durée sont effectués.

Pour résoudre ce problème, considérez le code suivant :

<code class="cpp">std::cout << "Beginning computations...";  // Output 1
computations();
std::cout << " done!\n";                   // Output 2</code>

La sortie n°1 informe l'utilisateur que les calculs sont en cours, tandis que la sortie n°2 signale leur achèvement. Cependant, la sortie n°1 peut ne pas apparaître à l'écran avant le retour de computations().

Heureusement, il existe une solution simple : introduire std::flush. L'insertion de std::flush dans le code force le tampon std::cout à être immédiatement imprimé à l'écran :

<code class="cpp">std::cout << "Beginning computations..." << std::flush;</code>

Cela garantit que la sortie n°1 est affichée avant l'appel calculs(), donnant à l'utilisateur retour visuel immédiat.

Alternativement, au lieu de std::cout, on pourrait utiliser std::cerr, qui écrit dans le flux d'erreurs standard. Par défaut, std::cerr vide immédiatement son tampon, résolvant le problème sans avoir besoin de std::flush.

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!

Déclaration:
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