Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 13/06/2006, à 12:38

jobherzt

[C++] gestion de l'affichage de texte...

bonjour a tous !

je bosse en ce moment sur un petit logiciel scientifique en ligne de commande, qui se trouve etre relativement bourrin ( mouline facilement plusieurs heures ). comme c'est angoissant de voir clignoter un curseur sans savoir ce qui se passe, j'affiche a intervalle regulier ( ~ttes les 30 secondes ) un panorama de l'etat courant du programme.

le probleme, c'est que du coup on se retrouve avec une liste interminable de petits messages, ce qui n'est ni tres joli, ni tres clair.


j'aimerais donc savoir comment faire pour :

- positionner du texte sur la console, ou plus exactement faire que le nouveau texte ecrase l'ancien ( comme le fait l'encodeur ogg, entre autre, par exemple )
-eventuellement mettre de la couleur, pour la clarté.

le tout doit etre portable, parce que c'est aussi destiné a tourner sous windows, et puis parce que c'est bien de faire du code portable !!

ma question est simple, et on pourrait me renvoyer vers google mais je ne sais pas trop comment le formuler. j'ai trouve des trucs pour la couleur, mais avec printf, et j'ai tendance a utiliser plutot cout..  disons que j'ai des objets a afficher et/ou a stocker dans des fichiers, et j'ai donc redefini l'operateur <<, donc printf ne me conviendrait pas...

merci !!

Hors ligne

#2 Le 13/06/2006, à 13:52

node

Re : [C++] gestion de l'affichage de texte...

Salut jobherzt,
La bibliothèque ncurses te permettra de faire tout ce que tu désires, et même beaucoup plus me semble-t-il. Elle est portable avec Cygwin.

Hors ligne

#3 Le 13/06/2006, à 15:00

Noé

Re : [C++] gestion de l'affichage de texte...

Avec Cygwin c'est vraiment une mauvaise solution. Non quelqu'un aurait une autre réponse ?
Ça m'intéresse aussi big_smile


dotdotno ou Phlogistique sur IRC
Jabber : noe.rubinstein CHEZ fritalk.com

Hors ligne

#4 Le 13/06/2006, à 15:52

jobherzt

Re : [C++] gestion de l'affichage de texte...

ben oui, dans la mesure ou ca n'est pas strictement indispensable, ca m'embete de rajouter une dependance et de forcer le passage par cygwin sur un programme en c++ pur et dur qui fonctionne tout seul comme un grand..

ceci dit, cette librairie a l'air sympa, a garder sous le coude !!

par contre, je me suis souvenu que cout fonctionne comme n'importe quel flux, donc en particulier, cout.seekp() existe, comme avec les fichiers... sauf que ca ne marche pas chez moi, il doit y avoir une astuce !

quand je fais cout.tellp(), ca me renvoit toujours -1....

Hors ligne

#5 Le 13/06/2006, à 17:23

jobherzt

Re : [C++] gestion de l'affichage de texte...

bon, a la guerre comme a la guerre, je suis allé voir dans le code source de oggenc, et j'ai trouvé un truc.... mais ca ne marche QUE si on n'a qu'une seule ligne.. il suffit d'ajouter un \r ... un exemple a la con :

for(i=0;i<n;i++)
{
  //mon super code
  cout << 100*((float)i+1)/n << "% fait";
  cout << "\r" ;
}

ce code affichera le pourcentage du boulot effectué en ecrasant la ligne precedente a chaque fois, ce qui est quand meme bcp plus joli.. je ne sais pas si ca marche sous windows..

Dernière modification par jobherzt (Le 13/06/2006, à 17:24)

Hors ligne

#6 Le 13/06/2006, à 17:28

jobherzt

Re : [C++] gestion de l'affichage de texte...

du coup, en jouant avec les caracteres |\/- on peut faire une petit barre qui tourne, ou avec des = une barre de progression.

Hors ligne