Problema con la funcion getchar

Iniciado por lublanc, 21 Diciembre 2017, 15:07 PM

0 Miembros y 1 Visitante están viendo este tema.

lublanc

Hola

Estoy espesando a programar y tengo un problema con el siguiente ejercicio.

Me pregunta seria.

1) Por que dentro del if me ejecuta ambas casos?

2) hay alguna forma de que no lo haga intentando usar los mismos elementos del ejercicio? 

gracias

#include <stdio.h>
#include <stdlib.h>


int main()
{
   int numero;
   unsigned int aCount = 0;

   puts("Ingrese un caracter");
   while( (numero = getchar()) != EOF )
   {
      if( numero == 'a' )
         aCount++;
      else
         puts("Catacter incorrecto");
   }

   printf("%u", aCount);
   return 0;
}

MAFUS

Cuando adquieres algo por teclado lo que se teclea va a un buffet y getchar devuelve el primer elemento de ese buffer, pero queda lo demás. Cuando tomas un solo carácter en verdad se guardan dos: el dato que quieres y uno de nueva línea '\n', fruto de pulsar ENTER.
Puedes solucionar esto vaciando el buffer leyendo todos los caracteres que tiene hasta llegar al de nueva línea, así te aseguras que en la próxima iteración sólo estará el dato que te interesa.