‚Cómo manipular arreglos de estructuras?

Iniciado por diseho2880, 18 Mayo 2021, 03:12 AM

0 Miembros y 1 Visitante están viendo este tema.

diseho2880

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;
}

prosebas

Te anexo aqui la solución
Código (cpp) [Seleccionar]

#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 .