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 :

Lecture d'un fichier


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 165
    Par défaut Lecture d'un fichier
    Bonjour à tous,

    Je me permets de venir vous poser une question des plus basiques mais qui est entrain de me faire pousser des cheveux blancs...
    Je cherche à lire un fichier et à détecter lorsque j'ai atteint la fin du fichier. Vous allez me dire rien de plus simple...

    J'ai le code suivant:
    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
    #include <iostream>
    #include <fstream>
     
    int main()
    {
            std::fstream                    file("monfichier.txt", std::ios::in|std::ios::binary);
            char                            buffer[80001];
     
            file.read(buffer, 80000);
            std::cout << "Read: " << file.gcount() << " - end? " << file.eof() << std::endl;
     
            file.read(buffer, 80000);
            std::cout << "Read: " << file.gcount() << " - end? " << file.eof() << std::endl;
     
            file.read(buffer, 80000);
            std::cout << "Read: " << file.gcount() << " - end? " << file.eof() << std::endl;
     
            return 1;
    }
    Le soucis c'est que si je mets un fichier qui fait PILE 160 000 octets, à la deuxième lecture, je ne déclenche pas le flag EOF alors que le dernier read me sort 0 octet lu...
    Qu'est ce que j'ai râté ?!?

    Petite précision: la lecture n'est pas faite dans une boucle mais dans des appels successifs

    Merci d'avance pour votre aide sur ce cas si ... basic

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 153
    Billets dans le blog
    4
    Par défaut
    Le flag EOF est set quand la précédente lecture a échoué parce que la fin du fichier a été atteinte. Et cette lecture dépasse le fichier.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 165
    Par défaut
    Donc si je dois effectuer une action lors que j'atteins la fin du fichier, je suis obligé de stocker la taille du fichier qq part et de travailler avec alors...
    Merci pour ta réponse

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

Discussions similaires

  1. Lecture d'un fichier .dbf
    Par San Soussy dans le forum Autres SGBD
    Réponses: 8
    Dernier message: 07/07/2004, 16h30
  2. Réponses: 6
    Dernier message: 02/09/2003, 15h12
  3. Lecture et ecriture fichier .ini
    Par despe dans le forum C
    Réponses: 6
    Dernier message: 23/07/2003, 20h40
  4. [langage] Optimiser la lecture d'un fichier
    Par And_the_problem_is dans le forum Langage
    Réponses: 4
    Dernier message: 05/02/2003, 08h54
  5. [langage] Optimiser la lecture d'un fichier
    Par And_the_problem_is dans le forum Langage
    Réponses: 2
    Dernier message: 11/06/2002, 10h24

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