CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[C++] barre de chargement//console

scawf
scawf
Niveau 7
18 mai 2006 à 07:08:52

Bonjour,

J´aimerais realiser une petite barre de chargement/progression en console, ça doit etre quelque chose de tout bete, mais voila je trouve pas..

La barre devrais etre du genre:

[ ]
[=> ]
[==> ]
[===> ]
[====>]
[=====]

Bon, pour faire le tout, sans le caractere finale "]", y´a pas de probleme..
Mais comment faire pour afficher ce caractere finale, puis, ecrire avant ?
Et comment faire pour réecrire à la place du ">" ?
Voila ce que je ne trouve pas ^^´

Un peutipeu d´aide s´il vous plait ? :p

kufa
kufa
Niveau 9
18 mai 2006 à 08:56:40

Sur amiga, j´utilisais les ansi escape codes (
http://en.wikipedia.org/wiki/ANSI_escape_code).

Sur windows il faut le driver pour que ces caracteres soient interpretes (si je me souviens bien), mais a tu essaye d ecrire un backspace (´\8´) ? Aucune idee si ca fonctionne sur windows cela dit.

/kUfa

LGV
LGV
Niveau 28
18 mai 2006 à 09:49:04

sur PC tu peux utiliser \r pour renvoyer le curseur en debut de ligne, et reecrire par dessus la ligne en cours ; c´est ce que j´utilisais, ca marche sans soucis.

kufa
kufa
Niveau 9
18 mai 2006 à 12:40:29

ce qui correspond a Carriage Return (0x13), je me demande si ca marche correctement sur toutes les platformes, une idee?
Ansi escape codes forever :) (ou comment faire des animations couleures dans un fichier texte :)

scawf
scawf
Niveau 7
18 mai 2006 à 12:55:57

Merci a vous deux.

LGV >> ça marche, mais le curseur bouge n´importe comment, l´ecriture est bonne mais le curseur (case coloré) dans la consol se retrouve au milieu, ou a la fin, ou au 3/4..
Ca vient peut etre de mon code brouillon ^^

kufa >> On utilise ça comment en C++ ?

dnob700
dnob700
Niveau 10
18 mai 2006 à 13:04:34

sinon tu peut utiliser un bibliothèque un peu plus avancé qui gère sans douleur le déplacement du curseur à une position arbitraire.

Comme conio si tu compilo l´a ou alors advio téléchargable là :
http://lib.sectionpc.info

guyver2
guyver2
Niveau 10
18 mai 2006 à 14:07:39

si tu es sous linux (on ne sais jamais) la librairie ncurses te permet de gerer beaucoup mieu l´affichage de text.

scawf
scawf
Niveau 7
18 mai 2006 à 20:06:10

Bon ben, merci a vous tous,
mais j´ai essayer d´ameliorer mon code, mais le fait d afficher 1 barre comme ça.. augmente le temps d´execution par 3.. (30s >> 1m30s..)
J´ai surement un truc pas net, mais bon meme si ça ne ralentit que par 1,5, c´est trop ! :-)

Sinon, ouaip je suis sous linux mais j´ai pas encore chercher a installer des librairies..
D´ailleur si quelqu´un à un petit how-to.. ?

LGV
LGV
Niveau 28
19 mai 2006 à 09:31:33

les sorties consoles sont tres couteuses ; calcule d´abord si tu dois effectivement mettre a jour ta barre de progression, et ne le fait que lorsque c´est necessaire

guyver2
guyver2
Niveau 10
19 mai 2006 à 13:55:25

Sinon, ouaip je suis sous linux mais j´ai pas encore chercher a installer des librairies..

D´ailleur si quelqu´un à un petit how-to.. ?

je suis sous ubuntu (debian) donc un simple passage part synaptic et le tour est joué.

je confirme aussi le truc du ralentissement; j´avais essyé de faire ce style de barre de progression mais le temps d´execution avait été multiplié par ~10... J´avais fini par me rabbatre sur juste afficher un truc dans ce genre:
10
9
8
7
... jusqu´a 0; beaucoup moins gourmant en tempps.

dnob700
dnob700
Niveau 10
19 mai 2006 à 16:18:31

il ne faut mettre à jour l´affichage que lorsqu´il a été modifié. C´est à dire si une boucle fait un million de tour, on teste que le compteur soit un multiple de 10 000 avant de modifier l´affichage de 1% par exemple. Mais ça ne sers à rien de réafficher 10 000 fois la même chose.

scawf
scawf
Niveau 7
19 mai 2006 à 20:04:01

Pour la barre de progression, je laisse tomber, sert a rien :-)

Et pour la lib, j´ai une "erreur" de compilation, ou je ne sais trop quoi, c´est pour NTL

---------------------------------
making subset
make[1]: Entering directory `/var/tmp/portage/ntl-5.4/work/ntl-5.4/src´
g++ -I../include -I. -O2 -march=pentium4 -pipe -fomit-frame-pointer -Wno-deprecated -o subset subset.c ntl.a -lgmp -lm
make[1]: Leaving directory `/var/tmp/portage/ntl-5.4/work/ntl-5.4/src´
subset 40 40 20 10 999999 f
n: b: size: prune: seed: alg [fqQxr]: +
---------------------------------

Plutot aller sur un forum linux pour ça nan ? :-)

dnob700
dnob700
Niveau 10
19 mai 2006 à 23:51:04

il n´y a pas d´erreur qui apparait dans les lignes que tu nous donne là.

Une erreur est toujours suivi d´une ligne commancant par le mot error : "une explication (parfois)".

C´est de ça dont on as besoin pour t´aider.

scawf
scawf
Niveau 7
20 mai 2006 à 06:16:48

Je sais bien, mais y´en a aucune..
Tout ce passe bien, puis ça bloque a cette endroit la

scawf
scawf
Niveau 7
21 mai 2006 à 12:33:22

Sinon y´a pas moyen de gerer de grand nombre autrement ? il me faudrais dans les 200 chiffres..

Avec une classe c´est possible nan , mais ça risque pas d´etre super lent ?

dnob700
dnob700
Niveau 10
21 mai 2006 à 15:47:53

ça dépend ce que tu veux faire.

200 chiffres c´est pas énormes, NTL, PG et çe genre de truc sont prévu pour pouvoir gérer plusieurs centaines de millier de chiffres.

Quel genre de calcul veux tu faire avec tes 200 chiffres ?

scawf
scawf
Niveau 7
23 mai 2006 à 12:58:41

Generer un/des grand nombre premier..
Y´a plus simple que NTL/PG pour ça ? :-)

dnob700
dnob700
Niveau 10
23 mai 2006 à 22:21:57

oui, il y a un truc que j´ai codé ce week end qui ne gère que les entiers relatif (pas de flottant), mais pas trop mauvais.

Mais je bug encore sur la division (j´ai un algo pas mal, mais pas bien implémenté). Je finit les concours demain, je le corrige demain après midi, et je l´upload...

Et comme la plupart de mes lib, c´est super simple à utiliser bien sûr...

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment