Cuestión : ¿Por qué este programa de C muy simple no trabaja completamente?

Hola allí, el

I en OSX y tiene la línea de comando del GCC recopilador para el lenguaje-c.  Soy nuevo a C y a la por lo tanto usar el libro clásico “el lenguaje de programación del ANSI C” por Brian Kernighan y Dennis Ritchei como manera de aprender la lengua.  Hay un ejercicio en la primera parte del libro de que no puedo conseguir de trabajo, y pienso que puede tener que hacer con la manera que estoy compilando, solamente la no sure.  El programa es muy simple.  Se piensa para contar simplemente la cantidad de carácteres de la entrada (en este caso, el ejercicio utiliza getchar ().  Aquí está el programa según lo encontrado en el libro: class= " lineNumbers " >
1 del >

#include 

carácteres de la cuenta de/* en entrada; 1ra versión *

cañería ()
{
     nc largo;

    nc = 0;
    ¡mientras que (getchar ()! = EOF)
         ++nc;
    printf (“%ld \ n”, nc);
}

Después de que I excepto que el código hacia fuera a un archivo nombrado “characterCount.c” me funciona con la línea de comando del GCC herramienta como tan:

GCC characterCount.c

Compila muy bien, ningunos errores.  Entonces funciono el ejecutable generado por el recopilador como tan:

./a.out

El programa espera mi entrada, así que mecanografío algunos carácteres, el golpe entra, y nada imprime.  El programa está contando con más entrada. ¡Porqué es eso?!  ¿No debe la línea de código con el printf conseguir ejecutada?  Sé que esto es de menor importancia, pero quiero realmente entender porqué el código no está ejecutando completamente. ¿Hay un poco de interruptor especial que tengo que girarme mientras que compila para hacerle el trabajo?  

Puede cualquiera ayudarme a entender qué se está encendiendo aquí.  Estoy particularmente interesado en porqué el programa guarda el contar con de más entrada después de que incorpore una línea de carácteres.

¡Gracias por su tiempo y ayudar! class= >
de
class= del

Respuesta : ¿Por qué este programa de C muy simple no trabaja completamente?

intento

¡mientras que (getchar ()! = “\ n”)

El EOF debe ser Ctrl + D que conjeturo…
Otras soluciones  
 
programming4us programming4us