Buenas, tengo la siguiente duda, puedo comprar dos registro? es decir si quiero ver si son iguales dos registro se puede?
En c++ no se pueden comparar dos registros nativamente asi que tienes varias opciones una de ellas es crear una funcion que compare dos registros como acontinuacion
#include <iostream>
using namespace std;
typedef struct{
int entero;
float decimal;
string cadena;
} Registro;
//la funciona compara dos registros del tipo Registro si son iguales retorna true sino dara false
bool compararRegistros(Registro r1,Registro r2){
return ((r1.cadena==r2.cadena) && (r1.entero==r2.entero) && (r1.decimal==r2.decimal));
}
int main()
{
Registro r1;
r1.cadena="hola mundo";
r1.entero=34;
r1.decimal=4.444;
Registro r2;
r2.cadena="otra cosa";
r2.entero=3333;
r2.decimal=222.222;
if(compararRegistros(r1,r2)){
cout<<"son iguales"<<endl;
}
else{
cout<<"No son iguales "<<endl;
}
//copiamos el contenido de regitros uno al registro dos
r2=r1;
//volvemos a comparar
if(compararRegistros(r1,r2)){
cout<<"son iguales"<<endl;
}
else{
cout<<"No son iguales "<<endl;
}
return 0;
}
[MOD] Al publicar código usar las etiquetas GeSHi.
Si hablamos de clases os estructuras en C++, existe el operador ==.
class T{
public:
int data;
bool operator==(const T& t){return t.data==data;}
};
int main(){
T a,b;
if(a==b) ...
}
Si hablamos de C, habría que hacer una función externa a la estructura como comenta crack81.
Muchas gracias, si la pregunta era en torno a C++ ;D