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 :

fgets et feof


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 241
    Par défaut fgets et feof
    Bonjour,

    J'ai deux fonctions distinctes qui utilisent le meme fichier.
    Dans les 2 j'ai utilisé le meme principe de détection de fin de fichier et de lecture du fichier.
    Seulement dans la première ça marche impec mais dans la seconde la boucle ne se termine pas.
    Entre les 2 appels aux fonction j'ai utilisé rewind() pour me replacer en début de fichier.

    Pour les 2 cas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    fgets(info,11,fichEntree);	
    	while(!feof(fichEntree))
    	{
                 ....
    fgets(info,11,fichEntree);
             }
    Merci

  2. #2
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2006
    Messages : 507
    Par défaut
    Ce n'est pas très clair tout ça...
    Donne un peu plus de code pour voir...

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 241
    Par défaut
    En faites le probleme ne venait pas de la, ces quand je sors de ma fonction je clos le fichier dans lequel je lis et celui dans lequel j'écris(ceux utiliser dans la boucle), car je n'en ai plus besoin.

    Mais la je ne sais pas encore pourquoi c'est la que ça plantait...
    Je cherche et si j'ai des questions je reviends vous faire un ti coucou

  4. #4
    Membre Expert
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Par défaut
    Mais si c'est clair. Il faut utiliser le retour de fgets() pour savoir si le fichier est termine ou non (ou si une erreur de lecture s'est produite). feof() ne sert qu'a departager entre un cas d'erreur et une vraie fin de fichier.

  5. #5
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Comme l'a dis DaZumba feof ne fait pas ce que tu crois

    Pour lire un fichier jusqu'à la fin

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    while(fgets(buffer, sizeof buffer, fp) != NULL)
    {
        /* action */
    }
     
    if(!feof(fp))
    {
        printf("Erreur lecture fichier !\n");
        exit(EXIT_FAILURE);
    }

  6. #6
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 241
    Par défaut
    ok

    Merci c'est imprimé (dans mon cervelet)

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

Discussions similaires

  1. [Dates] fgets(STDIN) timeout ?
    Par FFF dans le forum Langage
    Réponses: 1
    Dernier message: 04/10/2005, 10h58
  2. utilisation de fgets: une question
    Par artatum dans le forum C
    Réponses: 5
    Dernier message: 27/09/2005, 17h27
  3. Réponses: 20
    Dernier message: 25/09/2005, 15h07
  4. gets ,fgets
    Par Zazeglu dans le forum C
    Réponses: 2
    Dernier message: 19/09/2003, 18h24
  5. Problème avec fgets et tube...
    Par tchingoo dans le forum POSIX
    Réponses: 5
    Dernier message: 22/08/2003, 17h03

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