Vraag : Waarom door werkt dit zeer eenvoudige c- programma al manier niet niet?

Hallo daar, heeft

I am op OSX en de gcc compiler van de bevellijn voor C - taal.  Ik ben nieuw aan C en daarom gebruik de schrijver uit de klassieke oudheid boek de „ANSI C Programmeertaal“ door Brian Kernighan en Dennis Ritchei as een manier om de taal te leren.  Er is één oefening in het eerste deel van het boek dat ik niet het werken kan krijgen, en ik denk het met de manier kan moeten doen ik compileer, maar niet zeker ben.  Het programma is zeer eenvoudig.  Het is bedoeld de hoeveelheid karakters van input (in dit geval, het getchar oefeningsgebruik () eenvoudig om te tellen.  Hier is het programma zoals die in het boek wordt gevonden:

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 

/* tellingskarakters in input; 1st versie */

belangrijkst ()
{
     lange nc;

    nc = 0;
    terwijl (getchar ()! = EOF)
         ++nc;
    printf („%ld \ n“, nc);
}

Na I behalve dat code uit aan een dossier genoemd „characterCount.c“ ik stel zo het gcc hulpmiddel van de bevellijn als in werking:

gcc characterCount.c

Het compileert boete, geen fouten.  Ik stel dan uitvoerbaar in werking zo geproduceerd door de compiler als:

./a.out

Het programma wacht op mijn input, zodat typ ik een paar karakters, gaat de klap binnen, en niets drukt - uit.  Het programma verwacht meer input. Waarom dat? is!  Uitgevoerd niet zou de lijn van code met printf moeten worden?  Ik weet dit minder belangrijk is, maar ik wil werkelijk begrijpen waarom de code al manier niet door uitvoert. Is er één of andere speciale schakelaar ik moet aanzetten terwijl het compileren om tot het het werk te maken?  

Kan om het even wie me helpen begrijpen wat op hier gaat.  Ik ben bijzonder geinteresseerd in waarom het programma houdt verwachtend meer input nadat ik een lijn van karakters inga.

Dank u voor uw tijd en hulp! 

Antwoord : Waarom door werkt dit zeer eenvoudige c- programma al manier niet niet?

probeer

terwijl (getchar ()! = „\ n“)

EOF zou moeten zijn CTRL + D die ik… heb verondersteld
Andere oplossingen  
 
programming4us programming4us