Hoy en día, escribí un simple trozo de código que utiliza getchar()
para contar los caracteres que introduzca. Pero cuando lo compilo en Cygwin, no funciona. Siempre imprime 0, pero nada Nunca entrada o no puedo entrada cualquier carácter que imprime 0.¿Por qué getchar() no funciona bien?
Sin embargo, si compilo con VC++ 6.0, funciona.
#include<stdio.h>
int main(void)
{
long nc;
nc = 0;
while(getchar() != EOF)
++nc;
printf("The total of characters you inputed is %ld.\n", nc);
return 0;
}
¿Qué estás usando para compilar el cygwin? Tengo cygwin y uso VC para compilar y esto funciona bien. – hmjd
Su código exacto funciona perfectamente para mí en Cygwin (compilación con GCC). Tienes que presionar control-D para enviar un EOF. –
¿Cómo * exactamente * estás ejecutando el programa? ¿Qué sucede cuando ejecutas 'echo hello | ./your_program' desde un prompt de Cygwin bash shell? ¿Qué pasa si escribe simplemente './Your_program', luego' hello', luego Enter, luego Control-D? –