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

R�seau C Discussion :

comment savoir s'il y a des donn�es a lire dans un flux ?


Sujet :

R�seau C

  1. #1
    Membre exp�riment�
    Homme Profil pro
    Inscrit en
    Avril 2002
    Messages
    290
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2002
    Messages : 290
    Par d�faut comment savoir s'il y a des donn�es a lire dans un flux ?
    C'est juste un petit exemple :
    stream est in FILE*...
    je cherche a lire ce qui'il y a dessus, et a l'afficher...
    or je bloque dans fgets(� la troisi�me it�ration)...
    j'ai aussi essay� du getc � la place du feof pour essayer de voir s'il y a quelque chose dans le flux...

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    while(!feof(stream))
    {
    	fgets(buffer,BUFFERSIZE,stream);
    	printf("%s\n",buffer);
    }
    mon probl�me est que je suppose que mon flux est vide sans etre ferm�...

  2. #2
    Expert �minent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retrait�
    Inscrit en
    D�cembre 2003
    Messages
    14 512
    D�tails du profil
    Informations personnelles :
    �ge : 69
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : Retrait�

    Informations forums :
    Inscription : D�cembre 2003
    Messages : 14 512
    Par d�faut Re: comment savoir s'il y a des donn�es a lire dans un flux
    Citation Envoy� par Gandalf
    stream est in FILE*...
    je cherche a lire ce qui'il y a dessus, et a l'afficher...
    or je bloque dans fgets(� la troisi�me it�ration)...
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    while(!feof(stream))
    {
    	fgets(buffer,BUFFERSIZE,stream);
    	printf("%s\n",buffer);
    }
    J'ai expliqu� maintes fois, mais visiblement le message a du mal � passer, que feof() ne faisait pas ce qu'on croit souvent (C != Pascal). Pour d�terminer la fin de lecture, il faut tester la valeur retourn�e par la fonction de lecture.
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    while (fgets (buffer, BUFFERSIZE, stream) != NULL)
    {
       printf ("%s\n", buffer);
    }

  3. #3
    Membre exp�riment�
    Homme Profil pro
    Inscrit en
    Avril 2002
    Messages
    290
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2002
    Messages : 290
    Par d�faut
    Ca c'�tait effectivement la premiere forme...

    Qui ne marche pas non plus...

    ca reste toujours bloqu� sur le fgets...

  4. #4
    Membre �m�rite
    Profil pro
    Eleveur de cornichons
    Inscrit en
    Juin 2002
    Messages
    1 074
    D�tails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activit� : Eleveur de cornichons
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 074
    Par d�faut
    Citation Envoy� par Gandalf
    ca reste toujours bloqu� sur le fgets...
    Je ne comprend pas cette phrase . Comme �a , �a reste "bloquer" ?
    Si il n'y a plus rien � lire, fgets retournera NULL et donc tu sors de la boucle. Je comprend pas :

    Nas'

  5. #5
    Membre exp�riment�
    Homme Profil pro
    Inscrit en
    Avril 2002
    Messages
    290
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2002
    Messages : 290
    Par d�faut
    Citation Envoy� par Nasky
    Citation Envoy� par Gandalf
    ca reste toujours bloqu� sur le fgets...
    Je ne comprend pas cette phrase . Comme �a , �a reste "bloquer" ?
    Si il n'y a plus rien � lire, fgets retournera NULL et donc tu sors de la boucle. Je comprend pas :

    Nas'
    la fonction ne retourne pas...
    tout simplement

  6. #6
    Expert �minent
    Avatar de Emmanuel Delahaye