Good morning! I try to make an operations program with structs, however when I try to compile it marks the error:
error: could not convert 'e.buscarElemento()::Encontrar::nombre.std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::operator=<char, std::char_traits<char>, std::allocator<char> >(alumnos[p].Alumno::nombres)' from 'std::__cxx11::basic_string<char>' to 'bool'|
The code is as follows:
#include <iostream>
using namespace std;
struct Alumno
{
string nombres="";
string apellidos="";
int edad=0;
float estatura=0.0;
bool activo=0;
};
Alumno alumnos[2];
void mostrarDatos()
{
for(int p=0;p<2;p++)
{
cout<<"Nombre(s): "<<alumnos[p].nombres<<endl;
cout<<"Apellidos: "<<alumnos[p].apellidos<<endl;
cout<<"Edad: "<<alumnos[p].edad<<endl;
cout<<"Estaturta: "<<alumnos[p].estatura<<endl;
if(alumnos[p].activo)
{
cout<<"Tu status es ACTIVO"<<endl;
}
else
{
cout<<"Tu status es INACTIVO"<<endl;
}
}
}
void capturarDatos()
{
for(int p=0;p<2;p++)
{
cout<<"Introduce tu nombre(s)"<<endl;
cin.ignore();
getline(cin,alumnos[p].nombres);
cout<<"Introduce tus apellidos"<<endl;
cin.ignore();
getline(cin,alumnos[p].apellidos);
cout<<"Introduce tu edad"<<endl;
cin>>alumnos[p].edad;
cout<<"Introduce tu estatura"<<endl;
cin>>alumnos[p].estatura;
cout<<"¿Estas activo?"<<endl;
cout<<"En caso de que tu respuesta sea afirmativa introduce un 1"<<endl;
cout<<"En caso de que tu respuesta sea negativa introduce un 0"<<endl;
cin>>alumnos[p].activo;
}
}
void buscarElemento()
{
struct Encontrar
{
string nombre="";
};
Encontrar e;
int td;
bool valorEncontrado=false;
cout<<"Que clase de dato desea buscar"<<endl;
cout<<"1 Nombres"<<endl;
cout<<"2 Apellidos"<<endl;
cout<<"3 Edad"<<endl;
cout<<"4 Estatura"<<endl;
cout<<"5 Activo"<<endl;
cin>>td;
switch(td)
{
case 1:
cout<<"¿Que nombre desea buscar?"<<endl;
cin.ignore();
getline(cin,e.nombre);
for(int p=0;p<2;p++)
if(e.nombre=alumnos[p].nombres)
{
valorEncontrado=true;
cout<<"Se encontro a: "<<e.nombre[20]<<" en la posicion "<<p<<endl;
}
if(valorEncontrado=false)
{
cout<<"No se encontro el dato"<<endl;
}
}
}
int main()
{
int op;
do{
cout<<"Menu:"<<endl;
cout<<"0 Salir"<<endl;
cout<<"1 Llenar arreglo"<<endl;
cout<<"2 Buscar elemento por alguno de los datos"<<endl;
cout<<"3 Mostrar elementos"<<endl;
cout<<"Elige una opcion"<<endl;
cin>>op;
switch(op)
{
case 0:
break;
case 1:
capturarDatos();
break;
case 2:
break;
case 3:
mostrarDatos();
break;
}
}while(op!=0);
return 0;
}
The error belongs to the line:
if(e.nombre=alumnos[p].nombres)
I would like you to explain to me the error and, if possible, how to solve it; in advance, thank you.