Alguien me podría explicar porque no me deja ingresar información a un campo de una estructura. El programa se detiene cuando entra en el ciclo. Cualquier parte del codigo que este mal podrían ayudarme, gracias.
#include <iostream>
using namespace std;
#define MAXCHAR 50;
struct Grupo{
char clave_grupo[50];
};
struct Profesor{
Grupo lista_grupos[8];
};
int main()
{
Profesor profesores;
int num_grup;
cout << "\nNumero de grupos: ";
cin >> num_grup;
for (int i = 0; i < num_grup; i++)
{
cout << "Clave del grupo " << i+1 << ": ";
cin.getline(profesores.lista_grupos.clave_grupo,MAXCHAR);
}
return 0;
}
Te anexo aqui la solución
#include <iostream>
using namespace std;
#define MAXCHAR 50
struct Grupo
{
char clave_grupo[50];
};
struct Profesor
{
struct Grupo lista_grupos[8];
};
int main()
{
Profesor profesores;
int num_grup;
cout << "\nNumero de grupos: ";
cin >> num_grup;
cin.ignore();
for (int i = 0; i < num_grup; i++)
{
cout << "Clave del grupo " << i + 1 << ": ";
cin.getline(profesores.lista_grupos[i].clave_grupo, MAXCHAR);
}
return 0;
}
Cita de: diseho2880 en 18 Mayo 2021, 03:12 AM
cin.getline(profesores.lista_grupos.clave_grupo,MAXCHAR);
En esta linea no estarias almacenando para cada grupo la clave del grupo.
El cin.ignore() se usa para ignorar lo que hay en el bufffer y no salte la lectura de datos .