Faire précéder une variable de zéros c++

Résolu/Fermé
Asterix2231 Messages postés 50 Date d'inscription mardi 5 février 2008 Statut Membre Dernière intervention 16 avril 2013 - 23 févr. 2010 à 16:58
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 - 23 févr. 2010 à 17:28
Bonjour,

Je voudrais savoir s'il existe une commande permettant de faire précéder de (plusieurs) zéro(s) l'affichage du contenu d'une variable numérique en c++.

En c, il existe le code suivante:
int main(){
    int i = 1;
    int j = 12;
    int k = 123;
    int l = 1234;
    printf("Ma variable vaut: %04i \n", i);
    printf("Ma variable vaut: %04i \n", j);
    printf("Ma variable vaut: %04i \n", k);
    printf("Ma variable vaut: %04i \n", l);
}


qui adapte le nombre de zéros précédent la valeur de ma variable automatiquement:
Ma variable vaut: 0001 
Ma variable vaut: 0012 
Ma variable vaut: 0123 
Ma variable vaut: 1234 


Est ce qu'il existe quelque chose d'équivalent en c++, utilisant les flux?

Merci d'avance!

3 réponses

Asterix2231 Messages postés 50 Date d'inscription mardi 5 février 2008 Statut Membre Dernière intervention 16 avril 2013 11
23 févr. 2010 à 17:13
Oui, c'est ce que je fais depuis une heure à peu près.

Ceci dit j'ai la réponse maintenant, il faut utiliser le manipulateur setfill suivi de setw:
cout << setfill('0') << setw(4) << mavariable;


Merci quand même!
2
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 192
23 févr. 2010 à 17:09
cherches un peu autour des ios_base:
http://www.cplusplus.com/reference/ios/ios_base/setf/

edit:

 // field width
#include <iostream>
using namespace std;

int main () {
  cout << 100 << endl;
  cout.width(10);
  cout << 100 << endl;
  cout.fill('x');
  cout.width(15);
  cout << left << 100 << endl;
  return 0;
}

Output:
100
       100
100xxxxxxxxxxxx



http://www.cplusplus.com/reference/ios/ios_base/width/

0
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 192
23 févr. 2010 à 17:28
je t'avoue que ca doit faire 6 ans que je l'ai vu pour la seule et unique fois ;)
0