Question : Pourquoi ce programme C très simple Ne fonctionne-t-il pas complètement ?

Salut là, le

I AM sur OSX et ont la ligne de commande de GCC compilateur pour le langage C.  Je suis nouveau à C et à AM donc using le livre classique « le langage de programmation de la norme ANSI C » par Brian Kernighan et Dennis Ritchei comme manière d'apprendre la langue.  Il y a un exercice dans la première partie du livre que je ne peux pas obtenir travaillant, et je pense qu'il peut devoir faire avec la manière que je compile, mais l'AM pas sure.  Le programme est très simple.  On le prévoit pour compter simplement la quantité de caractères d'entrée (dans ce cas-ci, l'exercice emploie getchar ().  Voici le programme comme trouvé dans le livre : class= " lineNumbers " >
1 de >

#include 

caractères de compte de/* dans l'entrée ; �ère version *

force ()
{
     long OR ;

    OR = 0 ;
    tandis que (getchar () ! = EOF)
         ++nc ;
    printf (« %ld \ n », OR) ;
}

Après qu'I sauf que le code dehors à un dossier appelé « characterCount.c » me courent la ligne de commande de GCC outil comme ainsi :

GCC characterCount.c

Il compile très bien, aucunes erreurs.  Je cours alors l'exécutable produit par le compilateur comme ainsi :

./a.out

Le programme attend mon entrée, ainsi je dactylographie quelques caractères, le coup entrent, et rien n'imprime.  Le programme s'attend à plus à d'entrée. Pourquoi est ce ? !  La ligne du code avec le printf ne devrait-elle pas obtenir exécutée ?  Je sais que c'est mineur, mais je veux vraiment comprendre pourquoi le code ne s'exécute pas complètement. Y a-t-il un certain commutateur spécial que je dois mettre en marche tout en compilant pour lui faire le travail ?  

Peut quiconque m'aider à comprendre ce qui continue ici.  Je suis particulièrement intéressé par pourquoi le programme continue à s'attendre à plus à d'entrée après que j'écrive une ligne des caractères.

Merci de votre temps et aider ! class= >

de
class= de

Réponse : Pourquoi ce programme C très simple Ne fonctionne-t-il pas complètement ?

essai

tandis que (getchar () ! = « \ n »)

L'EOF devrait être CTRL + D que je devine…
Autres solutions  
  •  MS Excel 2007 et pdf - l'exportation vers le pdf prend de longues heures !
  •  Dans le Perl, comment j'ajoute une valeur à la liste, puis le contrôle pour voir si la valeur existent avant d'ajouter une nouvelle valeur
  •  Comment fais j'initialiser de la HP BL460c G6 de san et de la HP XP 240000
  •  Comment fais j'employer une clef de permis de volume sur un ordinateur de HP avec du CD de restauration
  •  Emplacement primaire de deux SCCM dans l'annuaire actif
  •  L'initiateur et la HP D2D de l'iSCSI R2 du serveur 2008 de Windows GERCENT l'issue
  •  Stocker le dossier dans le mysql using connector.net et le champ de goutte
  •  Carte vidéo d'USB - bit 32 sur le matériel travaillant au niveau du bit 64 ?
  •  asp.net que j'essaye de convertir une forme de HTML en forme d'aspx ou ? ce qui jamais. Aide du besoin sur la façon dont à à elle.
  •  Winzip 12 issues de secours du travail ?
  •  
    programming4us programming4us