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

Résolu
Asterix2231 Messages postés 55 Statut Membre -  
Nabla's Messages postés 18201 Date d'inscription   Statut Contributeur Dernière intervention   -
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!
Configuration: Linux / Firefox 3.5.8

3 réponses

  1. Asterix2231 Messages postés 55 Statut Membre 11
     
    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
  2. Nabla's Messages postés 18201 Date d'inscription   Statut Contributeur Dernière intervention   3 228
     
    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
  3. Nabla's Messages postés 18201 Date d'inscription   Statut Contributeur Dernière intervention   3 228
     
    je t'avoue que ca doit faire 6 ans que je l'ai vu pour la seule et unique fois ;)
    0