Dev - C++ - No me corre el codigo me pueden revisar por favor

 
Vista:
Imágen de perfil de Seb

No me corre el codigo me pueden revisar por favor

Publicado por Seb (9 intervenciones) el 25/05/2022 18:13:17
//Se tiene una estructura de alumno (nombre, codigo), se pide: rellenar y mostrar datos del alumno en un array dinámico
#include <iostream>
#include <vector>
using namespace std;

struct estudiante {
string codigo;
string nombre;


};

int main()
{

string inputcodigo, inputNombre;

//vamos a pedir los datos por medio de un for() infinito
for(int i = 0; 0 == 0; i++)
{
cout << "estudiante numero " << i+1 << ":\n";
cout << "cual es su ID?: ";
cin >> inputcodigo;
cout << "Cual es su nombre?: ";
cin >> inputNombre;


estudiante.push_back({inputcodigo, inputNombre});

}
return 0;
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
1
Responder
Imágen de perfil de kevin

RE: No me corre el codigo me pueden revisar por favor

Publicado por kevin (59 intervenciones) el 26/05/2022 01:41:37
Tienes un error, y es que nunca declaras un vector, un vector no es lo mismo que un arreglo (por ejemplo: array[]), un array se declara de la forma:

1
vector<[tipo de dato]> [nombre del vector]; //(sólo quita los [])
por ejemplo:
1
vector<int> lista;
la librería <vector> tampoco le agrega atributos a los arreglos.

Así que hay que crear un vector del tipo estudiante:
1
vector<estudiante> estudiantes; //como buena practica, el nombre del vector puede ser plural del tipo de valor

Ya después, para poder cerrar el bucle infinito for sin que se pierdan los datos, al usuario se le pregunta que si quiere dejar
de meter datos y, por medio de "int continuar", si aprieta 0, saldra del bucle y se meterá a otro bucle que es el que despliega
los datos del vector

Por todo lo demás está bien tu código :) así que te dejo el codigo corregido:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <iostream>
#include <vector>
using namespace std;
 
struct estudiante {
    string codigo;
    string nombre;
};
 
vector<estudiante> estudiantes;
 
int main()
{
    string inputcodigo, inputNombre;
    int continuar;
 
    //vamos a pedir los datos por medio de un for() infinito
    for(int i = 0; 0 == 0; i++)
    {
        cout << "estudiante numero " << i+1 << ":\n";
        cout << "cual es su ID?: ";
        cin >> inputcodigo;
        cout << "Cual es su nombre?: ";
        cin >> inputNombre;
        cout << "Continuar? (1 = si; 0 = no): ";
        cin >> continuar;
        cout << "--------------\n\n";
        estudiantes.push_back({inputcodigo, inputNombre});
        if(continuar == 0){
            break;
        }
    }
 
    cout << "Mostrando la lista de alumnos:\n-----------------\n";
    for(int i = 0; i < estudiantes.size(); i++){
        cout << "Estudiante numero: " << i << endl;
        cout << "-ID: " << estudiantes.at(i).codigo << endl;
        cout << "-Nombre: " << estudiantes.at(i).nombre << "\n\n";
    }
    return 0;
}
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
sin imagen de perfil
Val: 1.440
Bronce
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

No me corre el codigo me pueden revisar por favor

Publicado por dario (718 intervenciones) el 26/05/2022 12:48:49
Otra forma de hacerlo
Salu2.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <iostream>
#include <vector>
 
using namespace std;
 
struct estudiante {
    string codigo;
    string nombre;
};
 
 
int main()
{
    string inputcodigo, inputNombre;
    int continuar,i=1;
    vector <estudiante> estudiantes;
 
    //vamos a pedir los datos por medio de un for() infinito
    for(;;)
    {
        cout << "estudiante numero " << i << ":\n";
        cout << "cual es su ID?: ";
        cin >> inputcodigo;
        cout << "Cual es su nombre?: ";
        cin >> inputNombre;
        cout << "Continuar? (1 = si; 0 = no): ";
        cin >> continuar;
        cout << "--------------\n\n";
 
        estudiantes.push_back({inputcodigo, inputNombre});
        i++;
 
        if (continuar == 0)
            break;
    }
 
    cout << "Mostrando la lista de alumnos:\n-----------------\n";
    i = 1;
    for(auto e : estudiantes) {
        cout << "Estudiante numero: " << i << endl;
        cout << "ID: " << e.codigo << endl;
        cout << "Nombre: " << e.nombre << "\n\n";
        i++;
    }
 
    return 0;
}
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