Dev - C++ - cual es el comando que se debe de meter para que el programa no se salte el gets?

   
Vista:

cual es el comando que se debe de meter para que el programa no se salte el gets?

Publicado por saul (5 intervenciones) el 29/06/2017 01:41:15
hola buenas tarde me podrian decir cual es el comando que se debe de meter para que el programa no se salte el gets???
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Dionicio

cual es el comando que se debe de meter para que el programa no se salte el gets?

Publicado por Dionicio (57 intervenciones) el 29/06/2017 23:50:13
No es aconsejable el uso de gets debido a que sobrescribe memoria que no tiene asignada la variable si la cadena es muy extensa, es mejor utilizar fgets();

1
fgets(<Nombre_cadena>,<tamaño>,stdin<(entrada estándar, el teclado)>);

Lo siguiente sería limpiar el buffer o memoria intermedia para que no se salte la siguiente lectura. En algunos foros puedes encontrar personas que usen fflush(stdin); lo cual está mal ya que fflush trabaja con flujos de salida. Yo lo hago de la siguiente manera, lo hago en una función para más facilidad:

1
2
3
4
void limpiar_buffer(void){
	int buff;
	while((buff=getchar()) != '\n' && buff != EOF);
}
Para implementarlo sería más o menos de la siguiente manera:

1
2
3
4
5
6
        //Leer una cadena
	fgets(<Nombre_cadena>,<tamaño>,stdin<(entrada estándar, el teclado)>);
	//limpiar la memoria intermedia
	limpiar_buffer();
	//Leer otra cadena
	fgets(<Nombre_cadena>,<tamaño>,stdin<(entrada estándar, el teclado)>);

Espero te sirva, un saludo!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Revisar política de publicidad