Hola
Quiero realizar un programa en donde me pida algunos datos y quiero guardar uno de ellos en un arreglo con la funcion gets(string). El problema es que al realizar la carga es como que se saltea la funcion y me pide ingresar los datos del proximo dato.
La parte donde falla es la siguiente
fila=0;
printf ("\nIngrese el nombre del alumno: ");
gets(nombre);
printf ("\nIngrese el numero de comision: ");
scanf ("%d",&comision);
printf ("\n%s",nombre);
Al ejecutarlo directamente se saltea el gets y empieza por "Ingrese el numero de comision". A este codigo le faltan declarar variables, etc pero quizas no estoy entendiendo el funcionamiento de la funcion, que desventajas tiene ,etc o porque se saltea?.
Muchas gracias
Declara la variable nombre como un array de tipo char[100], dándole una longitud que no sea tan exagerada:
#include<iostream>
#include<stdlib.h>
#include<string.h>
using namespace std;
int main(){
char nombre[100];
int comision;
printf ("\nIngrese el nombre del alumno: ");
gets(nombre);
printf ("\nIngrese el numero de comision: ");
scanf ("%d",& comision);
printf ("\n%s",nombre);
system("pause");
return 0;
}
Recomiendo mejor el uso dw fgets para poder limitar la entrada y no causar un bufferoverflow:
fgets(cadena,limite,stdin);
Donde cadena es un char de longitud limite, limite nos limita la entrada de datos y stdin es la entrada estandar
Saludos