Ver Mensaje Individual
  #7 (permalink)  
Antiguo 29/05/2014, 04:15
vosk
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 11 años, 9 meses
Puntos: 83
Respuesta: Contar carateres

Por cierto EOF en consola de windows es ctrl-z y representa el ascii -1.

Luego el codigo de celtic7 si que funciona siguiendo alguna regla: el getchar estandar requiere enter para saber que terminaste de escribir; sabiendo que getchar solo recupera un caracter a la vez, sabiendo tambien que haces un ciclo para recuperar todos los caracteres, y sabiendo que no puedes concatenar el ctrlz a otros caracteres dentro del buffer de entrada (a menos que ctrl-z sea el primer caracter), el codigo funciona cuando escribes:

Código C:
Ver original
  1. hola
  2. <enter>
  3. <ctrl-z>
  4. <enter>

Obtienes 5 caracteres: 'hola' + <enter>, el ultimo enter para aceptar ctrl-z se queda en el stdin.

Aun asi tal como te comentaron yo tambien prefiero la version de @Drewermerc, donde usa un caracter concatenable como punto final, pero esto solo significa que la funcion del libro es poco amigable, no tiene nada que ver con la revision de C.

Saludos
vosk