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 :

Probleme lecture fichier [FAQ]


Sujet :

C++

  1. #1
    Membre régulier
    Inscrit en
    Novembre 2002
    Messages
    291
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 291
    Points : 81
    Points
    81
    Par défaut Probleme lecture fichier
    Bonjour, j'ai une petite fonction qui consiste à lire un fichier texte et affiche, à la suite, les mots (un mot etant separé par un espace.
    Le seul prob c'est qu'elle ne marche pas, elle m'affiche le 1er mot bien et apres c'est n'importe quoi...je comprends pas


    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
    22
    23
    24
    25
    26
    27
     
    void Mot(char* fich)
    { 
     std::ifstream ifile(fich); // Ouverture du fichier en lecture
      char cc[3];
      char buffer;
      strcpy(cc,"\0");
     if (ifile) 
      {  // si on a bien pu ouvrir le fichier
      	while (!ifile.eof()) 
        { // tant qu'on est pas en fin de fichier
        	strcpy(cc,"\0");  	
    		ifile.get(buffer); // on lit un caractere
     
    	    while(buffer == '\r' || buffer == '\n') ifile.get(buffer); 	
     
    	    while (buffer != ' ')
    	    {
    	      	cc[strlen(cc)]=buffer;	
    	      	ifile.get(buffer);   	      		
    	    }
     
    	    cc[strlen(cc)+1]='\0';
    		std::cout << cc << std::endl;	
        }
      }
    }

    merci de votre aide

  2. #2
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Points : 2 757
    Points
    2 757
    Par défaut
    Salut,

    Tu ne serais pas programmeur C à la base ?
    (ça n'a rien d'ironique, c'est juste question)

    (sauf qu'au lieu de lire ligne par ligne, on va lire mot par mot)

    http://c.developpez.com/faq/cpp/?pag...ture_par_ligne


    bigboomshakala : réponse immédiate à tout problème 24/24 - 7/7

  3. #3
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Points : 2 757
    Points
    2 757
    Par défaut
    vite fait, bien fait (j'espère)

    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
    22
    23
    24
    25
    #include <fstream>
    #include <string>
     
    using std::string;
    using std::ifstream;
    using std::cout;
    using std::endl;
     
    // ou éventuellement "using namespace std;"
    // si c'est un .cpp
     
     
    void Mot(string fich)
    {
       ifstream ifile(fich);
       string mot;
       if (ifile)
       {
          while (ifile >> mot)
          {
             cout << mot << endl;
          }
       }
       ifile.close();
    }

  4. #4
    Membre à l'essai
    Inscrit en
    Septembre 2004
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 25
    Points : 22
    Points
    22
    Par défaut
    quelques suggestions:
    D'abord évite tu vas avoir des problèmes..
    Voir ici car je crois que ce piège n'est pas abordé dans la FAQ
    http://www.parashift.com/c++-faq-lit...5.5&#91;/code]
    Ensuite tu ne réserve que 3 caractere pour stocker tes mots
    cela risque de buguer!
    Enfin tu lis plusierus fois un caractere dans ta boucle sans te soucier si
    tu as atteint la fin de fichier!pas bon
    Comme te le suggère bigboomshakala utilise la classe String.C'est tres
    confortable car comme le serine Aurelien.Regat-Barrel
    FAQ C++
    Les char *, c'est mal
    Voila.Y a surement autre chose ,faudrait voir
    si tu tiens absolument à utiliser ta méthode,c'est faisable.
    Tiens nous au courant!!

  5. #5
    Membre régulier
    Inscrit en
    Novembre 2002
    Messages
    291
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 291
    Points : 81
    Points
    81
    Par défaut
    Bonjour,

    merci de votre aide, j'ai tout lu avec attention et pense avoir compris

    (oui C à la base et c++ depuis peu)

    Par contre, avec l'utilisation de string comment je peux effectuer:
    sprintf(fichier, "fichier%d.txt", nb) avec nb etant un entier?
    merci

    Bonne soirée

  6. #6
    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 : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Citation Envoyé par CaptainChoc
    Par contre, avec l'utilisation de string comment je peux effectuer:
    sprintf(fichier, "fichier%d.txt", nb) avec nb etant un entier?
    et

    http://c.developpez.com/faq/cpp/?pag...RINGS_numtostr
    http://www.developpez.net/forums/viewtopic.php?t=306552

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

Discussions similaires

  1. [Debutant] Probleme lecture fichier
    Par TraPpeur dans le forum Débuter
    Réponses: 6
    Dernier message: 21/03/2006, 21h11
  2. [VB]Probleme lecture fichier text et affichage
    Par clochardevobsy dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 10/03/2006, 08h46
  3. Probleme lecture fichier acces sequentiel
    Par ouar dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 23/09/2005, 13h39
  4. [LG]probleme lecture fichier
    Par yp036871 dans le forum Langage
    Réponses: 2
    Dernier message: 28/01/2004, 19h22
  5. [LG]Probleme lecture fichier file of ....
    Par John_win dans le forum Langage
    Réponses: 11
    Dernier message: 11/11/2003, 18h53

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