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 boucle while


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 126
    Par défaut Problème boucle while
    bonjour a tous j'ai grand besoin de votre aide j'ai un probleme avec une boucle while qui ne s'arrete jamais en faite le but du programme et d'ouvrir cmd.exe et de lire ce qui il ya dedan puis d'ecrire ceci dans un buffer et apres direction une socket.je poste le code pour mieux coprendre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    void process()
    {
    static char buffer[1000];
    FILE *pp;
       pp=popen("cmd.exe","r");
       while(feof(pp)!=EOF)
       {
          fgets(buffer,sizeof buffer,pp);
       }
    }
    ceci et la partie sur laquel je but , je n'arrive pas dire a faire en sorte que la boucle s'arrete lorsque il n'ya plus rien a lire dans cmd.exe. Pourrriez vous m'aidez si il vous plait ?

  2. #2
    Membre chevronné Avatar de KindPlayer
    Profil pro
    Inscrit en
    Février 2007
    Messages
    471
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 471
    Par défaut un peu bizarre ton test
    essaie en mettant simplement while (!feof(pp)).
    p.s. Utilise les balises quand tu mets du code.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 126
    Par défaut merci d'avoir repondu
    merci de me repondre j'ai malheureusement deja essayer en mettant (!feof(pp)) auriez vous une autre façon d'ecrire cette boucle car je debute et comme tout debutant c'est un peu le fouillit dans mon code merci par avance

    ps:comment je peut mettre les balise quand je poste du code? merci

  4. #4
    Membre émérite Avatar de homeostasie
    Homme Profil pro
    Inscrit en
    Mai 2005
    Messages
    939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 939
    Par défaut
    La fonction feof() ne sert pas à détecter la fin d'un fichier mais à savoir si une erreur de lecture est dûe à la rencontre de la fin du fichier.

    cf. FAQ C Comment détecter une fin de fichier ?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 126
    Par défaut
    merci pour le lien et l'information homeostasie j'avai bien mal compri la fonction de eof mais j'ai tj un peu de mal a recrire ma boucle j'essay toute meme.merci encore

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 126
    Par défaut
    deole je n'arrive tj pa a ecrire ma boucle pouvez vous me guidee sil vouplai

  7. #7
    Membre émérite Avatar de homeostasie
    Homme Profil pro
    Inscrit en
    Mai 2005
    Messages
    939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 939
    Par défaut
    Citation Envoyé par chuko Voir le message
    deole je n'arrive tj pa a ecrire ma boucle pouvez vous me guidee sil vouplai
    Ca devrait avoir la forme suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    while( (fgets(buffer, sizeof buffer, pp) != NULL)
    {
        //Traitement de la ligne récupérée: Affichage par exemple
    }
     
    // Gestion eventuelle d'erreurs: est ce que la fin de fgets est dûe à la fin de fichier? -> utilisation de feof()
    D'autre part, il est toujours utilse de tester le retour des fonctions, notamment dans ton cas popen().

Discussions similaires

  1. problème boucle while
    Par Stephub dans le forum Débuter
    Réponses: 6
    Dernier message: 20/01/2009, 23h31
  2. Problème boucle while
    Par Peedro dans le forum Langage
    Réponses: 4
    Dernier message: 07/10/2008, 14h09
  3. Problème boucle while
    Par fred33 dans le forum Langage
    Réponses: 2
    Dernier message: 23/05/2008, 19h16
  4. [MySQL] Problème boucle WHILE
    Par Adlack dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 26/02/2007, 19h30
  5. Problème boucle while et evenement
    Par tse_tilky_moje_imja dans le forum Général Python
    Réponses: 2
    Dernier message: 30/03/2006, 18h11

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