Partage
  • Partager sur Facebook
  • Partager sur Twitter

pourquoi ce code ne marche pas?

Kernighan & Ritchie

Sujet résolu
    12 avril 2006 à 22:08:19

    Bonsoir à tous,
    Et encore bravo à M@theo son cours sur le C est vraiment limpide et plein d'humour. Vraiment chapeau bas!! :-°
    En même temps que je me familiarise avec le C grace à ce cours, j'ai décidé dans un élan de folie furieuse de m'atteler au livre de Brian W. Kernighan et Dennis M. Ritchie. :p Or je suis coincé car ce code ne marche pas. Il compile mais il n'y a pas de résultats. :( Ce programme est fait pour compter les caractères. Alors le voilà:

    #include <stdio.h>
    #include <stdlib.h>

    /*compte les caracteres en entree; 1ere version*/

    int main(int argc, char *argv[])
    {
    long nc ;

    nc=0;
    while (getchar() != EOF )
    ++nc ;

    printf( "%ld\n", nc) ;

    system("PAUSE");
    return 0;
    }

    normalement lorsque je tape des lettres et que je faits entré ça devrait m'afficher le nombre de caractères. Mais il n'y a rien qui s'affiche, même pas
    "appuyer sur une touche pour continuer..."

    Quelqu'un pourrait me dire ce qu'il se passe? o_O Merci à vous!!
    • Partager sur Facebook
    • Partager sur Twitter
      12 avril 2006 à 22:18:46

      Salut,

      Au lieu de :

      whiile(getchar() != EOF )

      met plutot ca

      whiile(getchar() != '\n' )

      car <<EOF>> est utiliser quand on arrive a la fin d'un fichier
      et <<\n>> indique l'appui sur la touche 'entree'

      A+
      • Partager sur Facebook
      • Partager sur Twitter
        12 avril 2006 à 22:27:01

        Utilise plutot la combinaison des touches Ctrl + Z pour renvoyer la valeur eof et ainsi arrêter la boucle, si tu utilise comme condition getchar() != '\n' tu auras quelques problèmes pour les exercices suivant du livre.

        ++
        • Partager sur Facebook
        • Partager sur Twitter
          12 avril 2006 à 22:42:30

          OUaaah!!

          Et en plus ils répondent super rapidement et ça marche!!

          merci beaucoup Ptilue et Araya
          • Partager sur Facebook
          • Partager sur Twitter
            12 avril 2006 à 23:14:37

            Citation : Ptitlue


            Au lieu de :

            while(getchar() != EOF )


            met plutot ca

            while(getchar() != '\n' )


            car <<EOF>> est utiliser quand on arrive a la fin d'un fichier
            et <<\n>> indique l'appui sur la touche 'entree'


            C'est vrai mais si on a envie de saisir plusieurs lignes ? La fin de lecture sera déclenchée par la combinaison de touches adéquate :

            MS-DOS/Windows : Ctrl-Z
            Unixoide: Ctrl-D (par défaut)

            C'est ce que demande cet exercice du K&R (et les suivants).

            Citation : leloy

            Or je suis coincé car ce code ne marche pas. Il compile mais il n'y a pas de résultats.


            Je trouve qu'il marche très bien ce code :

            mldsf mlkds mlkùmdlskf ùds
            ^Z
            27
            Appuyez sur une touche pour continuer...
            • Partager sur Facebook
            • Partager sur Twitter
            Music only !
              13 avril 2006 à 10:04:22

              AAAH Ok donc à la fin du code il faut faire ctrl+Z et entrée.
              bien vu ça marche.
              Ouf je suis sauvé car comme tu le disais -ed-, on nous demande ensuite de compter les lignes!!

              merci -ed-
              • Partager sur Facebook
              • Partager sur Twitter

              pourquoi ce code ne marche pas?

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown