Maison > développement back-end > C++ > 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
Libérer: 2024-11-02 21:04:02
original
1014 Les gens l'ont consulté

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

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

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 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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal