IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Afficher un pourcentage d'avancement dans la console


Sujet :

C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Expert confirm� Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 293
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 293
    Par d�faut Afficher un pourcentage d'avancement dans la console
    Salut

    Je voudrais afficher un pourcentage dans une console.
    Jusqu'ici, j'utilisais un bon vieux flux standard cout<<
    Mais je ne voudrais pas remplir l'�cran de pourcentages.

    1) Existe t il un moyen de revenir en arri�re dans la console de 1 ou 2 caract�res en gardant la technique des flux ?
    2) Sinon, quelle solution technique pour avoir un pourcentage fixe � l'�cran � une position ind�termin�e � la compilation?


    Merci

    Flo

  2. #2
    Expert �minent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activit� : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par d�faut
    Salut,

    Il peut souvent "suffir" d'utiliser le caract�re de retour charriot, sans retour � la ligne... le fameux '\r'

    exemple
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    #include <iostream>
    #include <windows.h> //pour "Sleep"
    using namespace std;
    int main()
    {
        for(size_t i=0;i<=1000;i++)
        {
            Sleep(2);//juste pour se donner le temps de voir
            float pr=i/1000.0*100;
            cout<<pr<<"%   \r";
        }
    }
    A m�diter: La solution la plus simple est toujours la moins compliqu�e
    Ce qui se con�oit bien s'�nonce clairement, et les mots pour le dire vous viennent ais�ment. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 f�vrier 2014
    mon tout nouveau blog

  3. #3
    Expert confirm� Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 293
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 293
    Par d�faut
    Nous, sous linux, on change de sleep... question d'hygi�ne.


    Cependant, GROS GROS merci. Tu as mis dans le mille.
    J'ai du rajouter un "flush" pour que �a apparaisse mais �a marche.

    Pour mon id�e initiale, \b aurait fait l'affaire mais ton \r est meilleur.




    Flo

  4. #4
    Expert �minent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activit� : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par d�faut
    En fait, le sleep n'�tait mis que pour permettre de voir le pourcentage avancer, car je n'avais, mais alors l�, aucune inspiration sur le moment pour cr�er une boucle qui aurait pris un temps "repr�sentatif" pour s'ex�cuter...

    En fait, il y a de fortes chances pour que le sleep soit en r�alit� remplac� par la boucle sur laquelle tu veux v�rifier l'�tat d'avancement... et ca peut donc �tre n'importe quoi
    A m�diter: La solution la plus simple est toujours la moins compliqu�e
    Ce qui se con�oit bien s'�nonce clairement, et les mots pour le dire vous viennent ais�ment. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 f�vrier 2014
    mon tout nouveau blog

  5. #5
    Expert confirm� Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 293
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 293
    Par d�faut
    En fait, c'�tait juste pour attirer ton attention sur le fait que le Sleep() contenu dans windows.h (notons le S majuscule) n'est pas le m�me que le sleep() de linux (pas de bibli incluse) notamment car il a une minuscule mais surtout car il fonctionne en secondes et non en milisecondes.
    Je crois qu'il faut utiliser usleep() pour avoir les milisecondes.

    Non, je n'ai pas inclus windows.h sous linux
    Non, je n'ai pas attendu 1000 secondes

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Afficher une barre d'avancement dans une fen�tre
    Par Olivier.p dans le forum VBScript
    R�ponses: 8
    Dernier message: 05/08/2010, 17h01
  2. afficher des messages en couleur dans la console
    Par taha1 dans le forum Langage
    R�ponses: 4
    Dernier message: 30/06/2009, 10h57
  3. R�ponses: 6
    Dernier message: 23/05/2008, 15h15
  4. Afficher les erreurs de Struts dans la console Eclipse
    Par lazit dans le forum Eclipse Java
    R�ponses: 1
    Dernier message: 28/06/2007, 15h31
  5. Afficher un indice de progression dans une console
    Par petdelascar dans le forum C
    R�ponses: 2
    Dernier message: 17/05/2006, 14h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo