IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

imposer un "format" à un int


Sujet :

C++

  1. #1
    Membre confirmé
    Inscrit en
    Mars 2004
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 77
    Par défaut imposer un "format" à un int
    Bonjour,

    Je voudrais créer automatiquement des fichiers qui auraient pour nom :

    monfichier.000
    monfichier.001
    monfichier.002 ...


    De ce fait, j'aurais deux petites questions :

    - je souhaiterais "formater" un int pour qu'il me retourne toujours 3 chiffres par exemple : 000 ou 001 ou 002 etc... est-ce possible??

    -comment faire pour concatener une chaine de caractere avec un int? j'ai essayer de faire strcat(machaine, i), i etant une variable et machaine une chaine de caractere, mais ca ne fonctionne pas. Y a t'il une solution?


    Merci d'avance!!

  2. #2
    Invité(e)
    Invité(e)
    Par défaut
    Bonjour
    je souhaiterais "formater" un int pour qu'il me retourne toujours 3 chiffres par exemple : 000 ou 001 ou 002 etc... est-ce possible??
    Oui mais un int reste un int : un nombre signé (sur 32 bit généralement)
    C'est les chaines de caractère que l'on formatte.

    -comment faire pour concatener une chaine de caractere avec un int? j'ai essayer de faire strcat(machaine, i), i etant une variable et machaine une chaine de caractere, mais ca ne fonctionne pas. Y a t'il une solution?
    C'est du C...
    En c++, il faut mieux utiliser les string dont le formattage est très facile.

    FAQ C++

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2004
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 77
    Par défaut
    Je n'ai peut etre pas utilise le bon terme, bien sur dans le premier cas ca restera un int, mais comment faire pour qu'il s'affiche "000" à la place de "0"? Ce n'est pas possible?

  4. #4
    Invité(e)
    Invité(e)
    Par défaut
    C'est une propriété de formatage il faudra, peut etre, créer une fonction du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    string MonFormat(int i)
    {
    string sSortie;
       if (i<10)
       {
          //mettre deux zéros dans sSortie puis l'int
       }
       else if(i<100)
       {
          //en mettre 1...
       }
       //ainsi de suite
    }
    Mais il y a peut etre déjà ce que tu cherches dans la classe string

  5. #5
    Membre confirmé
    Inscrit en
    Mars 2004
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 77
    Par défaut
    je viens d'essayer de mettre donc des string a la place de mes char, et lorsque je compile j'ai des erreurs dans "string.cc", donc a priori dans la fonction correspondant à #include<string>.
    Dois-je ajouter autre chose à mon projet pour que ca fonctionne correctement?

  6. #6
    Membre Expert
    Avatar de Ti-R
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2003
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 683
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    int i=1;
    char filename[255];
    sprintf(filename,"nom_du_fichier.%03d",i);
    Bon je te sorts du C pour du C++, et je vais me faire siffler par la foule

    La seul limitation du code si dessus est qu'il faut faire attention que le tableau de char utiliser ne soit pas trop petit pour le nom du fichier...

  7. #7
    Invité(e)
    Invité(e)
    Par défaut
    La foule a honte pour toi !

  8. #8
    Membre confirmé
    Inscrit en
    Mars 2004
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 77
    Par défaut
    merci, je vais essayer comme ca!

  9. #9
    Membre Expert
    Avatar de Ti-R
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2003
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 683
    Par défaut
    Fait attention j'avais homis le 0 dans %03d dsl

    Pour expliquer, il prend un nombre entier -> d, qui doit faire 3 caractères complétés par 0 si rien n'est présent.

  10. #10
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #include <sstream>
    #include <iomanip>
    #include <string>
    #include <vector>
     
    std::vector<std::string> Filenames;
     
    for (int i = 0; i < nb_fichiers; ++i)
    {
        std::ostringstream oss;
        oss << "monfichier." << std::setw(3) << std::setfill('0') << i;
        Filenames.push_back(oss.str());
    }

  11. #11
    Membre confirmé
    Inscrit en
    Mars 2004
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 77
    Par défaut
    Merci a tous pour l'aide que vous m'avez apporté !!

Discussions similaires

  1. Utilisation du format $quote
    Par lhonolulu dans le forum SAS Base
    Réponses: 5
    Dernier message: 25/05/2009, 11h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo