Bonjour
travaillant sur des algorithmes appliques a un grand nombre d'images et donc longs a s'executer, j'ai ecrit une petite fonction pour simuler une barre de chargement dans un terminal afin de savoir quel pourcentage du travail est effectue :
Code :
- void loading(int i, int size)
- {
- if (i==-1)
- cout<<"\b\b\b\b";
- else
- printf("%03d%%",(int)((double)(i+1)/size*100));
- cout.flush();
- }
|
appele comme ceci
Code :
- for( it = imagesNames.begin(); it != imagesNames.end(); it++, i++ )
- {
- loading(i, size);
- // traitement sur l'image courante
- loading(-1);
- }
|
On obtient donc un compteur de pourcentage qui s'incremente.
Le probleme est que des fois au lieu que le pourcentage s'affiche j'ai une erreur "broken pipe".
Y'a t'il des precautions particulieres a prendre qd on utilise cout.flush() puisqu'apparemment le pb vient de la ?