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 :

Problème vecteur de string


Sujet :

C++

  1. #1
    Membre confirmé
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Novembre 2008
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2008
    Messages : 130
    Par défaut Problème vecteur de string
    Bonjour à tous,
    j'ai actuellement un problème avec un vecteur de string. Ce dernier me fait planté mon programme je ne sais pourquoi alors qu'il est compilé. Windows(7) me met que le programme a cesser de fonctionner ...
    Voici l'intégralité de mon code :
    Code c++ : 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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    #include<iostream>
    #include<conio.h>
    #include<math.h>
    #include<iomanip>
    #include<string>
    #include<fstream>
    #include <cstring>
    #include <vector>
     
    using namespace std;
     
    int main()
    {
         int nbLigne;
         string chaine;
         vector<string> tableau;
         // recuperation du fichier *******************************************
         ifstream fichier("C:\\log.txt",ios::in);
     
         if (!fichier.fail())
         {
            string ligne;
            int nbLigne=0;        
            while(getline(fichier, ligne)) 
            {  
              tableau[nbLigne]=ligne;
              nbLigne++;
            }
          }
          else
          {
           cout << " Problème fichier log.txt \n";
          }
          fichier.close() ;
          // Fin recuperation du fichier ***************************************
          cout << tableau.size();     
          getch();
          return(0);
    }
    Et voici la ligne qui pose problème :
    Code c++ : Sélectionner tout - Visualiser dans une fenêtre à part
    tableau[nbLigne]=ligne;

  2. #2
    Membre chevronné
    Avatar de haraelendil
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2004
    Messages
    283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2004
    Messages : 283
    Par défaut
    Je penses pas que l'opérateur [] soit capable de rajouter des éléments dans un vector.

    Dans tous les cas, utilise:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    tableau.push_back(ligne);
    ça marchera, et tu n'a pas besoin de ta variable nbLigne.

  3. #3
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 635
    Par défaut
    Salut,
    Citation Envoyé par haraelendil Voir le message
    Je penses pas que l'opérateur [] soit capable de rajouter des éléments dans un vector.

    Dans tous les cas, utilise:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    tableau.push_back(ligne);
    ça marchera, et tu n'a pas besoin de ta variable nbLigne.
    Je confirme...

    Le vecteur ne contient, à la base, aucun élément (enfin, s'il fallait être tout à fait honnête, ce n'est pas tout à fait juste non plus, mais le résultat est le même ), du moins, si tu ne définis pas explicitement la taille que doit prendre le vecteur... Et cette possibilité nécessite d'avoir affaire à des objets défaut constructibles

    L'opérateur [] n'est donc à utiliser que pour accéder à un élément existant du vecteur, tout comme c'est le cas pour les tableaux "C style":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    /* le code suivant posera quelques problèmes :D */
    int *tab = NULL; 
    /* ni new ni malloc :D */
    tab[5]= 10;
    Tu dois donc veiller à utiliser les instructions d'ajouts qui, elles, s'occuperont de la gestion de la mémoire afin de permettre de représenter le nombre d'éléments ad-hoc;
    • push_front (ajout en première position)
    • push_back (ajout après le dernier élément)
    • insert (insertion entre deux éléments existant)
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  4. #4
    Membre confirmé
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Novembre 2008
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2008
    Messages : 130
    Par défaut
    Merci pour ces réponses !

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

Discussions similaires

  1. Problème de conversion string->int
    Par seheiahs dans le forum Langage
    Réponses: 4
    Dernier message: 28/06/2006, 10h42
  2. [.Net] Return d'un vecteur de String*
    Par Colbix dans le forum VC++ .NET
    Réponses: 8
    Dernier message: 25/06/2006, 18h57
  3. [Débutant]vecteur de string
    Par Tonta dans le forum C++
    Réponses: 3
    Dernier message: 25/05/2006, 14h00
  4. Sale problème avec les strings et les fichiers
    Par acieroid dans le forum C++
    Réponses: 18
    Dernier message: 26/04/2006, 09h47
  5. problème fin de string sous windows 98
    Par LAPLACE dans le forum Windows
    Réponses: 1
    Dernier message: 07/03/2006, 11h09

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