Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Spinerker en 17 Octubre 2013, 13:57 pm



Título: Problema con while y getchar.
Publicado por: Spinerker en 17 Octubre 2013, 13:57 pm


Hola!! Este es mi primer mensaje aquí puesto que hace menos de un mes que he empezado a aprender C, y me topo con algunos problemas que me son un tanto complicados de arreglar, aunque muchas veces estos una vez vistos parecen tonterías....

Bueno, el caso es que me encontraba haciendo un programa que me indicara letras Mayusculas y minisculas, al parecerme un tanto fácil, he decidido complicarlo un poco mas y añadirle que me pide 8 caracteres y que me indique de nuevo si son mayusculas o no con la función while, tal que así.

#include <stdio.h>
#include <math.h>
int main(void)

{

      int numero=0;
      char letra;



      while (numero <= 7){


    printf("Introduce la letra\n");
      scanf("%c", &letra);
              letra = getchar();                
                      numero++;




      if (letra >= 'a' && letra <= 'z')

        {

          printf("Las letras son minusculas\n");
        }


        else if (letra>='A' && letra<='Z')

        {
          printf("Las letras son mayusculas\n");
        }

         else

        {
          printf("No son letras\n");
        }

        }

      return 0;

}

----------------

Me pide los 8 caracteres pero no me indica si las letras son mayusculas y minusculas, en cambio si le quito el getchar si que me lo pide pero al detectarme el enter... pues me salta dos lineas por lo que es un desastre, ¿Utilizo mal el getchar o es la estructura del programa?


Título: Re: Problema con while y getchar.
Publicado por: Eternal Idol en 17 Octubre 2013, 14:10 pm
Llama a getchar pero no le asignes su resultado a letra (asi estaras obteniendo el salto de linea pero no poniendolo en letra).


Título: Re: Problema con while y getchar.
Publicado por: Spinerker en 17 Octubre 2013, 14:15 pm
Llama a getchar pero no le asignes su resultado a letra (asi estaras obteniendo el salto de linea pero no poniendolo en letra).

Vaya!!! Siempre cometo errores en las cosas que parecen mas simples, pero bueno, seguiré aprendiendo...

Muchísimas gracias por la respuesta!  ;D  ;-)


Título: Re: Problema con while y getchar.
Publicado por: Eternal Idol en 17 Octubre 2013, 14:18 pm
De nada, por cierto el programa dejara de funcionar correctamente en cuanto el usuario escriba mas de una letra al mismo tiempo, mejor usar fgets con stdin y sscanf.