Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1438 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [ C++ ] reecrire une ligne en console

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[ C++ ] reecrire une ligne en console

n°677021
Ciler
Posté le 18-03-2004 à 12:41:00  profilanswer
 

Est-ce possible de reecrire par dessus une ligne existante en console, par exemple pour afficher un % de progression ?
 
Si oui, comment ? Ou bien quels indices chercher sur google ?


---------------
And I looked, and behold a pale horse: and his name that sat on him was Death, and Hell followed with him. Revelations 6:8
mood
Publicité
Posté le 18-03-2004 à 12:41:00  profilanswer
 

n°677026
xterminhat​e
Si vis pacem, para bellum.
Posté le 18-03-2004 à 12:45:04  profilanswer
 

Indice -> codes ASCII de CR et LF peut etre.

n°677029
Taz
bisounours-codeur
Posté le 18-03-2004 à 12:45:51  profilanswer
 

bof
 
avec \r tu peux portablement n'effacer qu'un seul caractere
 
par contre ça c'est bien
http://boost.org/libs/timer/timer.htm

n°677030
Taz
bisounours-codeur
Posté le 18-03-2004 à 12:46:06  profilanswer
 

xterminhate a écrit :

Indice -> codes ASCII de CR et LF peut etre.

heink ?

n°677033
Ciler
Posté le 18-03-2004 à 12:50:28  profilanswer
 

xterminhate a écrit :

Indice -> codes ASCII de CR et LF peut etre.


Je vois mal en quoi une terminaison de ligne va m'ettre utile ici  :??:


---------------
And I looked, and behold a pale horse: and his name that sat on him was Death, and Hell followed with him. Revelations 6:8
n°677040
xterminhat​e
Si vis pacem, para bellum.
Posté le 18-03-2004 à 12:57:03  profilanswer
 

ciler a écrit :


Je vois mal en quoi une terminaison de ligne va m'ettre utile ici  :??:  


 
Par définition :
 
(CR ASCII 13) The character which causes the cursor to move to the left margin, often used with line feed (LF ASCII 10) to start a new line of output.  
 
CR is encoded in C and Unix as "\r".
 
T'as d'autres remarques "à la con" en reponse à mon indice ?
 
Cordialement,
   XteR.


Message édité par xterminhate le 18-03-2004 à 13:02:56
n°677045
Ciler
Posté le 18-03-2004 à 13:04:17  profilanswer
 

xterminhate a écrit :


T'as d'autres remarques "à la con" en reponse à mon indice ?


Ou vois tu une remarque a la con ?  :sweat:  
 
Tu me donnes un indice, je cherche un peu, trouve que cela correspond a de la terminaison/saut de ligne (recherche incomplete apparement). Du coup je te demande plus de precisions. Je n'avais aucunement l'idee de faire une remarque a la con.


---------------
And I looked, and behold a pale horse: and his name that sat on him was Death, and Hell followed with him. Revelations 6:8
n°677457
xterminhat​e
Si vis pacem, para bellum.
Posté le 18-03-2004 à 19:16:29  profilanswer
 

En effet, c'etait déplacé de ma part. Mon indice t'a t il permis de résoudre ton pb ?
 
Cordialement,
   XteR.

n°677485
jagstang
Pa Capona ಠ_ಠ
Posté le 18-03-2004 à 20:03:49  profilanswer
 

ASCII 8 --> backspace

n°677498
darkoli
Le Petit Dinosaure Bleu
Posté le 18-03-2004 à 20:21:56  profilanswer
 

ciler a écrit :

Est-ce possible de reecrire par dessus une ligne existante en console, par exemple pour afficher un % de progression ?
 
Si oui, comment ? Ou bien quels indices chercher sur google ?


J'ai fait ce genre de barre de progression est ça marche assez bien je ne suis pas sur que ce soit très fiable.
 
J'ai simplement utilisé le caratère '\r' pour revenir au début de la ligne.
 

Code :
  1. fprintf(stdout, "..." );
  2. for ...
  3. {
  4.   traitement ...
  5.   fprintf(stdout, "\r[%-50s]", chaine);
  6. }


chaine est composée de n '#' (entre 0 et 50 dans l'exemple que je donne.
 
Mais il faut faire attention à la largeur de la console, si elle fait moins de 50 caractères tu auras des problèmes d'affichage.
 
Il faut faire aussi attention au rafraichissement. Il faut éviter de la faire trop souvent.

mood
Publicité
Posté le 18-03-2004 à 20:21:56  profilanswer
 

n°679454
nevin0u
Posté le 21-03-2004 à 20:54:41  profilanswer
 

Personnellement je le fais comme ça.. exemple d'une boucle infinie de créations de tableaux :
 

Code :
  1. while(1)
  2.    {
  3.    new int[5000] ;
  4.    cpt++ ;
  5.    cout << '\r' << cpt << " Tableaux crees" ;
  6.    }


 
Le \r revient au début de la ligne  et ça affiche le compteur en constante augmentation.

n°679877
Evadream -​jbd-
Posté le 22-03-2004 à 12:14:14  profilanswer
 


 
 
Essayez, c'est vraiment très bien et propre comme solution :
 


0%   10   20   30   40   50   60   70   80   90   100%
|----|----|----|----|----|----|----|----|----|----|
************************************


Message édité par Evadream -jbd- le 22-03-2004 à 12:14:32
n°679887
antp
Super Administrateur
Champion des excuses bidons
Posté le 22-03-2004 à 12:28:16  profilanswer
 

darkoli a écrit :


Mais il faut faire attention à la largeur de la console, si elle fait moins de 50 caractères tu auras des problèmes d'affichage.
 


 
On peut observer ce bug dans les versions françaises de Windows 2000 quand une analyse du disque est planifiée au démarrage : il met un décompte disant qu'on peut l'annuler dans les dix secondes. En anglais la phrase colle sur les 80 caractères mais pas en français :D


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [ C++ ] reecrire une ligne en console

 

Sujets relatifs
[php] récupérer l'id d'une ligne apres un INSERT MySQL[Perl] parcourir un fichier à partir d'une certaine ligne
[VB] Connaître la dernière colonne / ligne remplie d'une feuille Excelcomment faire pour lire une ligne dans un fichier avec une commande D
comment lire une ligne dans un fichier text pour l'utiliser dans[PHP/SQL] Principe du "qui est en ligne"
[DOS] ligne de commande[JAVA - JAVASCRIPT] Ouvrir la Sun Java Console [Résolu]
Signification précise d'une ligne (onChange= .... )effacer console
Plus de sujets relatifs à : [ C++ ] reecrire une ligne en console


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR