Maison > Article > développement back-end > Comment garantir une sortie immédiate en C à l'aide de « 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!