La función la cumple bien, dentro del bucle, lo que si que no se ejecuta al introducir 2 veces los datos.
Y el resultado quedaría así:
He intentado sacando el if del bucle y cumple una función y la otra no:
- Se introduce las dos veces los datos seguidos y luego te pide el nombre, pero al ingresarlo no te muestra el contenido del if.
Código
#include <iostream> using namespace std; struct Personaje{ char nombre[30]; int edad; char empresa[30]; }; int main(){ Personaje *Trabajador = new Personaje[20]; // Reservamos espacio con new int i; string nombre; for(i = 0; i < 2; i++){ // Se repite el proceso hasta 2 veces cout << "Nombre: "; cin >> Trabajador[i].nombre; cout << "Edad: "; cin >> Trabajador[i].edad; cout << "Empresa: "; cin >> Trabajador[i].empresa; delete Trabajador; // Liberamos memoria } cout << "Introduce el nombre del trabajador: "; cin >> nombre; if(nombre == Trabajador[i].nombre){ // Comprobamos si el arrai es igual a la variable cout << "Nombre: " << Trabajador[i].nombre << endl; cout << "Edad: " << Trabajador[i].edad << endl; cout << "Empresa: " << Trabajador[i].empresa << endl; }else; cin.get(); return 0; }
PD: Liberé memoria según me aconsejaste:
Código
delete Trabajador; // Liberamos memoria
Saludos.