Foros del Web » Programación para mayores de 30 ;) » C/C++ »

ISO C++ forbids comparisson between pointer and integer

Estas en el tema de ISO C++ forbids comparisson between pointer and integer en el foro de C/C++ en Foros del Web. void ModificarCliente(cliente *d, int t) { system("cls"); int i=-1; int ind=-1; int codigo; char mod; cout<<"Ingrese el codigo del cliente a modificar: "; cin>>codigo; while(ind==-1 ...
  #1 (permalink)  
Antiguo 19/03/2010, 11:55
 
Fecha de Ingreso: marzo-2010
Mensajes: 10
Antigüedad: 14 años, 2 meses
Puntos: 1
ISO C++ forbids comparisson between pointer and integer

void ModificarCliente(cliente *d, int t)
{
system("cls");
int i=-1;
int ind=-1;
int codigo;
char mod;
cout<<"Ingrese el codigo del cliente a modificar: ";
cin>>codigo;
while(ind==-1 && i<t){
if(d[i].GetVacio()== codigo) ese es el error
ind = i;
i++;
}
if(ind != -1){
cout<<d[ind];
cout<<"Desea modificar este cliente S o N(no): ";
cin>>mod;
if(mod == 'S' || mod == 's')
cin>>d[ind];
else
system("pause");
}else{
cout<<"No se encontro el cliente"<<endl;
}
}

no c q hacer y estoy desesperado...espero me puedan ayudar
  #2 (permalink)  
Antiguo 19/03/2010, 12:05
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 16 años
Puntos: 61
Respuesta: ISO C++ forbids comparisson between pointer and integer

Muestra el codigo del metodo GetVacio()
  #3 (permalink)  
Antiguo 19/03/2010, 12:08
 
Fecha de Ingreso: marzo-2010
Mensajes: 10
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: ISO C++ forbids comparisson between pointer and integer

char* cliente::GetVacio()
{
char *val;
val = new char[6];
strcpy(val,"000\0");
if(strcmp(identidad,"000") != 0)
return val;
else
return identidad;
}
  #4 (permalink)  
Antiguo 19/03/2010, 13:11
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 16 años
Puntos: 61
Respuesta: ISO C++ forbids comparisson between pointer and integer

GetVacio esta retornando un char * (un string), mientras que en la funcion ModificarCliente(), la variable codigo es un entero. No puedes comparar estos dos tipos en C. O haces que GetVacio() te devuelva un entero para que se pueda comparar con el codigo afuera o bien lees en un string el codigo para que lo puedas comparar.

Si quieres comparar 2 strings tienes que tener cuidado con el operador ==, en C 2 strings se comparan con la funcion strcmp(), tal como lo haces en el metodo GetVacio().
  #5 (permalink)  
Antiguo 19/03/2010, 14:04
 
Fecha de Ingreso: marzo-2010
Mensajes: 10
Antigüedad: 14 años, 2 meses
Puntos: 1
De acuerdo Respuesta: ISO C++ forbids comparisson between pointer and integer

Gracias...voy a probar a ver si lo puedo corregir!!!

Etiquetas: integer, iso, pointer
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:02.