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 :

des strings dans tableau(sans char!)


Sujet :

C++

  1. #1
    Membre très actif
    Homme Profil pro
    retraité
    Inscrit en
    Septembre 2006
    Messages
    286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Septembre 2006
    Messages : 286
    Par défaut des strings dans tableau(sans char!)
    Bonjour à tous!
    Je sais lire un fichier avec getline.
    Je veux charger un tableau avec les string extraites grâce à getline dans le but de modifier le contenu du tableau
    Je crois savoir qu'il faut passer par char.
    Mon code me marche pas évidemment.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    //chargement
    ifstream FhCptLignLch(FhCptLign.c_str(),ios::in);
    string LignLch;    
    int Cpttabl=0;
         while (getline(FhCptLignLch,LignLch))
         {
         Cpttabl++;
         cout<<" *"<<LignLch<<endl;
         tabl[Cpttabl]=LignLch.c_str();
         }
    Le défaut est :...
    Je ne remercierait jamais assez mes correspondants.
    Sen.

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Décembre 2010
    Messages
    734
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 734
    Par défaut
    Je vois un premier défaut du genre dangereux: un tableau c'est taille fixe, or tu ne connais pas à l'avance le nombre de lignes lues => s'il y en a plus que tu ne crois, débordement et plantage...
    Je crois qu'il serait plus sage d'utiliser un std::vector<string>, qui s'étendra tout seul en fonction des besoins. Quelles modifications voudrais-tu faire par la suite?

  3. #3
    Membre expérimenté Avatar de Dalini71
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2008
    Messages : 181
    Par défaut
    Comme l'a dit therwald, le mieux serait de passer par un std::vector.
    Essayes un truc du genre (pas testé) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    //chargement
    ifstream FhCptLignLch(FhCptLign.c_str(),ios::in);
    string LignLch;
    std::vector<std::string> v;
     
    while (getline(FhCptLignLch,LignLch))
    {
        cout<<" *"<<LignLch<<endl;
        v.push_back(Lignch);
    }
    Après tu auras toutes les lignes de ton fichier dans ton vector (de string en plus, plus pratiques que les char*), et donc libre à toi de faire les modifs que tu veux.

  4. #4
    Membre très actif
    Homme Profil pro
    retraité
    Inscrit en
    Septembre 2006
    Messages
    286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Septembre 2006
    Messages : 286
    Par défaut
    Merci pour cette remarque pertinente mais
    avant un bloc calcule la longueur du fichier:387 lignes mais sait-on jamais?
    Pour ne pas trimbaler des char je vais essayer vector.
    Ou une une autre solution si c'est possible qu'elle existe.
    Les modifs prévues consistent à ajouter soit au bout soit au milieu des lignes
    du tableau dans les parties vides d'autres chaines.Ces lignes seront lues pour effectuer des actions appropriées selon contenus.
    A vous lire tous.
    -------------------------------------------
    Je viens d'essayer mais mon compilo refuse car:
    "284 C:\Dev-Cpp\mainAnnCpl.cpp `vector' is not a member of `std' "
    -------------------------------------------
    Je viens de rajouter:#include <vector>:le compilo accepte.
    Cà roule.
    Merci.

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

Discussions similaires

  1. Insérer des string dans un tableau
    Par zooffy dans le forum ASP.NET
    Réponses: 9
    Dernier message: 24/02/2011, 11h28
  2. Modification des String dans un tableau par référence
    Par koukoula dans le forum Windows Forms
    Réponses: 13
    Dernier message: 06/06/2008, 15h29
  3. [Debutant]String en tableau de char
    Par amel2006 dans le forum Collection et Stream
    Réponses: 6
    Dernier message: 05/03/2006, 10h33
  4. problème our passer des string dans tableau d'int
    Par Battosaiii dans le forum C++
    Réponses: 9
    Dernier message: 15/07/2004, 17h42
  5. Réponses: 6
    Dernier message: 24/07/2003, 12h39

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