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 :

Modifier une ligne dans un flux


Sujet :

C++

  1. #1
    Membre confirmé Avatar de matteli
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    85
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 85
    Par défaut Modifier une ligne dans un flux
    J'utilise ce code pour déterminer l'état d'avancement de ma boucle

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    for (int i=0; i<Width; ++i)
    {
            cout << i << "/" << Width << endl;
            ...
    }
    Plutôt qu'une nouvelle ligne s'affiche à chaque itération comme mon code ci-dessus le fait, je voudrais que la même ligne soit modifiée à chaque itération.

  2. #2
    Membre expérimenté
    Profil pro
    Dev
    Inscrit en
    Décembre 2007
    Messages
    191
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dev

    Informations forums :
    Inscription : Décembre 2007
    Messages : 191
    Par défaut
    tu parles d'itération donc tu as une boucle. Montre nous le code qui pose problème, donc avec la boucle.

    En pratqiue il suffit de : faire l'affichage *avant* la boucle, ou si ce n'est pas possible mettre un bloc "if" dans la boucle qui ne fait l'affichage que quand tu le souhaites.

  3. #3
    Membre confirmé Avatar de matteli
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    85
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 85
    Par défaut
    J'ai modifié pour que ce soit plus clair.

  4. #4
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    avec quelque chose comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    for (int i=0; i<Width; ++i)
    {
            cerr << i << "/" << Width << "                                                        \r";
            ...
    }
    \r est un caractère qui reviens au début de la ligne
    les espaces sont la pour effacer les restes de l'ancien affichage

  5. #5
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 296
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 296
    Par défaut
    Le compteur s'incrémentant, un simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for (int i = 0 ; i!=N ; ++i) {
        ....
        std::cout << "\rcpt=" << i << "/" << N << std::flush;
    }
    suffira.

    Notes:
    - le \r avant
    - le flush
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  6. #6
    Membre confirmé Avatar de matteli
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    85
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 85
    Par défaut
    Citation Envoyé par Mongaulois Voir le message
    avec quelque chose comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    for (int i=0; i<Width; ++i)
    {
            cerr << i << "/" << Width << "                                                        \r";
            ...
    }
    \r est un caractère qui reviens au début de la ligne
    les espaces sont la pour effacer les restes de l'ancien affichage
    Impec ça marche.
    mais pourquoi utiliser cerr plutot que cout ?

  7. #7
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    heu....
    en faite je croit que ça assure que ce soit sur la console....
    Mais en faite je préfère ne rien dire, parce que je sais pas

  8. #8
    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,

    A vrai dire, le problème des cout/cerr/clog et autres est abondament décrit dans ce fil de discution

    Au final, et sans redirection particulière, tous les flux de sorties finissent par aboutir sur... la sortie standard (disons l'écran pour faciliter ), mais il est toujours possible de décider d'effectuer une redirection d'un des flux pour une raison qu'il ne tient qu'à toi d'évaluer

    A titre personnel, s'il s'agit d'un affichage normal, je ne verrais aucune objection à le faire apparaître directement dans cout...

    J'aurais, mais bon, cela n'engage que moi, tendance à limiter l'usage de cerr pour les erreurs et celui de clog pour l'enregistrement d'événements que je veux analyser à mon aise...

    En sommes, j'aurais tendance à utiliser les flux pour ce qu'ils sont sensés représenter (mais bon, ce que j'en dis, hein )
    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

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. modifier une ligne dans un datagridview
    Par misscricri dans le forum VB.NET
    Réponses: 5
    Dernier message: 30/10/2011, 19h51
  2. code java pour modifier une ligne dans un fichier txt
    Par pacomou dans le forum Général Java
    Réponses: 1
    Dernier message: 03/09/2009, 15h23
  3. Modifier une ligne dans un fichier txt en java
    Par nihad510 dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 09/10/2007, 22h08
  4. Modifier une ligne dans stdout
    Par getupa dans le forum Général Python
    Réponses: 2
    Dernier message: 21/12/2005, 18h18
  5. Comment faire pour modifier une ligne dans une DBGrid?
    Par Nico62 dans le forum C++Builder
    Réponses: 6
    Dernier message: 29/03/2005, 12h24

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