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 :

Programme boucle ne détecte pas la fin de fichier


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Femme Profil pro
    Chef de projet MOA
    Inscrit en
    Décembre 2014
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2014
    Messages : 1
    Par défaut Programme boucle ne détecte pas la fin de fichier
    je suis débutante je programme via code blocks sous window vista professionnel.
    j'execute le programme, qui compte les mots, ci-dessous via "run" de code bloks et je m'attends à ce qu'il
    affiche 0 0 0 hors il ne fait rien du tout , et lorsque je debug toujours via code bloks
    il reste dans la boucle while et semble attendre quelque chose du clavier , alors que je
    m'attendait à ce qu'il détecte de suite la fin de fichier et qu'il aille au printf, n'est-ce pas?
    merci d'avance pour votre aide

    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
    28
    #include <stdio.h>
     
    int main()
    {
          #define DEHORS 0
          #define DEDANS 1
     
        int c , nl, nm, nc , etat;
     
         etat=DEHORS;
     
         nl=nm=nc=0;
     
            while ((c=getchar()) != EOF){
               ++nc;
               if (c=='\n')
                ++nl;
              if (c == '\n' ||  c == ' '  ||  c== '\t')
                 etat =DEHORS;
              else if (etat==DEHORS)
                {etat=DEDANS;
                 ++nm ;
     
                }
              }
                   printf("%d %d %d\n", nl, nm, nc);
     
    }

  2. #2
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    Il faut taper au clavier ce qui provoque un EOF du flux d'entrée et cela dépend de l'os utilisé :

    - Pour Window <CTRL>Z <return>

    - Pour les genres Unix <CTRL>D <return>

    Ceci est expliqué dans la FAQ

    Si tu postes du code, utilise les balises CODE (bouton # de l'éditeur de messages.

Discussions similaires

  1. VBA ne détecte pas la fin d'instruction
    Par shkyo dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 19/11/2008, 14h03
  2. Réponses: 18
    Dernier message: 13/12/2005, 13h27
  3. ma boucle ne fonctionne pas
    Par mélo6 dans le forum ASP
    Réponses: 2
    Dernier message: 17/06/2005, 11h53
  4. Killer un programme dont on a pas le controle
    Par dj_djocker dans le forum C++Builder
    Réponses: 5
    Dernier message: 03/05/2005, 08h34
  5. [Kylix] Un programme compilé ne veut pas se lancer
    Par LightBeam dans le forum EDI
    Réponses: 1
    Dernier message: 05/08/2003, 10h15

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