Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: chewbaccaChaka en 11 Mayo 2018, 21:08 pm



Título: Uso de Getchar DUDA
Publicado por: chewbaccaChaka en 11 Mayo 2018, 21:08 pm
Hola,
Tengo una duda, tengo este codigo, es de estructuras. apenas las ando aprendiendo. Si lo compilo asi tal cual, deja ingresar los datos del primer usuario, pero para ingresar el segundo en la consola pasa que sale "Ingrese nombre" "Ingrese sexo" Osea salen los dos al mismo tiempo.
Se soluciono con ingresar esto
Citar
   while(getchar()!='\n');   

Y queda bien, mi duda es porque se usa While Getchar?
Les dejo el codigo que falla sin el While getchar

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

#define ELEMENTOS 2

struct informacion{
   char nombre[20];
   char sexo[20];
   char edad[3];
   float salario[10];
}informacion[ELEMENTOS];
int main (){
   int i;   
   for(i=0;i<ELEMENTOS;i++)
   {
      printf("Ingrese nombre: \n");
      gets(informacion.nombre);
      
      printf("Ingrese sexo: \n");
      gets(informacion.sexo);
      
      printf("Ingrese edad: \n");
      scanf("%f",&informacion.edad);
      
   }
   
   
   
   
   return 0;
}

Aqui dejo el codigo con el getchar
Citar
#include <stdio.h>
#include <stdlib.h>

#define ELEMENTOS 2

struct informacion{
   char nombre[20];
   char sexo[20];
   char edad[3];
   float salario[10];
}informacion[ELEMENTOS];
int main (){
   int i;   
   for(i=0;i<ELEMENTOS;i++)
   {
      printf("Ingrese nombre: \n");
      gets(informacion.nombre);
      
      printf("Ingrese sexo: \n");
      gets(informacion.sexo);
      
      printf("Ingrese edad: \n");
      scanf("%f",&informacion.edad);
      while(getchar()!='\n');   
   }
   
   
   
   
   return 0;
}


Título: Re: Uso de Getchar DUDA
Publicado por: MAFUS en 11 Mayo 2018, 22:53 pm
¿Sabes que hace getchar()?