Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: lublanc en 21 Diciembre 2017, 15:07 pm



Título: Problema con la funcion getchar
Publicado por: lublanc en 21 Diciembre 2017, 15:07 pm
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;
}


Título: Re: Problema con la funcion getchar
Publicado por: MAFUS en 21 Diciembre 2017, 17:17 pm
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.