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 :

Remplir un tableau de string


Sujet :

C++

  1. #1
    Membre du Club
    Profil pro
    Ingénieur calcul
    Inscrit en
    Février 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur calcul

    Informations forums :
    Inscription : Février 2011
    Messages : 47
    Points : 40
    Points
    40
    Par défaut Remplir un tableau de string
    Bonjour,
    Je cherche à lire un fichier et remplir un tableau dont chaque case sera une ligne de ce fichier. En fait j'ai un fichier qui contient des objet javascript comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    ...
    BLOC[482] = {champ1:"texte",
                  champ2:[["texte","texte"]],
                  champ3:[["text","texte"]],
                  champ4:["text","texte"],
                  champ5:[[1]],
                  champ6:[[10,3]],
                  champ7:181,
                  champ8:18,
                  champ9:[146,30,69,1,138,187,216,14]};
     
    BLOC[483] = {champ1:"texte",
                  champ2:[["texte","texte"]],
                  champ3:[["text","texte"]],
                  champ4:["text","texte"],
                  champ5:[[1]],
                  champ6:[[10,3]],
                  champ7:181,
                  champ8:18,
                  champ9:[146,30,69,1,138,187,216,14]};
    ...
    Donc je voudrai lire ce fichier et pouvoir afficher les infos des blocs dans un programme.

    Donc j'ai pensé à créer un tableau de string en faisant comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    int main(int argc,char **argv)
    {
    int Nbr_lignes = nombreLignes("fichier.js");
                       //nombreLignes() donne le nombre de lignes du fichier
     
        char *tableau[Nbr_lignes];
        tableau[0]="Tableau";
     
        char chaine_temp[100];
     
        FILE *f=fopen("fichier.js","r");
     
        for (int i=1;i<=Nbr_lignes;i++) {
            fgets(chaine_temp,100,f);
            tableau[i]=chaine_temp;
            printf("%s",tableau[i]);
        }
     
        fclose(f);
        return 0;
    }
    Le "printf("%s",tableau[i]);" affiche bien les lignes dans la console; mais lorsque je veux accéder ensuite aux case du tableau, elle contiennent toutes la dernière ligne du fichier texte "champ9:[146,30,69,1,138,187,216,14]};" ....

    Comment faire pour avoir bien une ligne par case du tableau et non pas seulement la derniere partout ?

    Ou sinon y-a-t-il une meilleure solution ? Merci

  2. #2
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Salut,
    Citation Envoyé par aku84 Voir le message
    Ou sinon y-a-t-il une meilleure solution ?
    Oui. Apprendre ou revoir ses bases de C++
    Les tableaux : std::vector
    Les chaînes de caractères : std::string
    Les fichiers : les flux

    Ce qui pourrait donner (écrit à la volé) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    #include <fstream>
    #include <string>
    #include <vector>
     
    int main()
    {
       std::string const fil_name = "trucmuche.txt";
       std::ifstream the_file(fil_name.c_str());
       std::string cur_line;
       std::vector<std::string> tabLines;
     
       while(std::get_line(the_file,cur_line))
       {
             tabLines.push_back(cur_line);
       }
       return 0;
    }

  3. #3
    Membre du Club
    Profil pro
    Ingénieur calcul
    Inscrit en
    Février 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur calcul

    Informations forums :
    Inscription : Février 2011
    Messages : 47
    Points : 40
    Points
    40
    Par défaut
    Merci c'est parfait !

    Bonne soirée

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème pour remplir un tableau de string
    Par Mescalito50 dans le forum C
    Réponses: 5
    Dernier message: 20/05/2011, 18h06
  2. [String] Remplir un tableau de String à partir d'une boucle "for"
    Par dev197 dans le forum Collection et Stream
    Réponses: 7
    Dernier message: 12/08/2009, 15h29
  3. Remplir un tableau de string
    Par emayen01 dans le forum C#
    Réponses: 10
    Dernier message: 17/03/2009, 13h17
  4. j arrive pas à remplir mon tableau de String
    Par poulette3000 dans le forum Collection et Stream
    Réponses: 1
    Dernier message: 29/10/2007, 18h52
  5. Remplir un tableau de string
    Par fritzdjan dans le forum C++
    Réponses: 4
    Dernier message: 11/02/2007, 15h16

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