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;
}
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.