Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Wazzp en 27 Enero 2011, 19:20 pm



Título: [C++] Error en funcion..
Publicado por: Wazzp en 27 Enero 2011, 19:20 pm
Esto es lo que tengo.. en BuscarNombre() Me tira un error.. dice que no se puede comparar puntero y entero.. Se me ocurrio que podria llegar a buscar asi pero parece que no.. Help?



Código
  1. #include <iostream>
  2. #include <stdio.h>
  3.  
  4. using namespace std;
  5.  
  6. struct Persona{
  7.        char Nombre[50];
  8.        int NumTel;
  9. } Plantilla[10];
  10.  
  11. int i,Elec;
  12.  
  13. char BuscarNombre();
  14. int BuscarNumero();
  15.  
  16.  
  17. int main()
  18. {
  19.    cout<<"Ingrese 10 nombres seguidos del numero de telefono.."<<endl;
  20.    cout<<endl;
  21.    for (i=0; i<10; i++)// Se completa el array.
  22.    {
  23.        cin>> Plantilla[i].Nombre;
  24.        cin>> Plantilla[i].NumTel;
  25.    }
  26.    //-----------------------------------------------------
  27.    //           Menu + Opciones                          *
  28.    //-----------------------------------------------------
  29.  
  30.    cout<<"-----------------------------------------"<<endl;
  31.    cout<<"Elige una de las siguientes opciones.."<<endl;
  32.    cout<<"1.- Buscar segun el nombre."<<endl;
  33.    cout<<"2.- Buscar segun el numero de telefono."<<endl;
  34.    cout<<"3.- Salir."<<endl;
  35.    cout<<endl;
  36.    cin>>Elec;
  37.  
  38.    switch(Elec)
  39.    {
  40.        case '1': BuscarNombre();
  41.        case '2': BuscarNumero();
  42.        break;
  43.    }
  44.  
  45.  
  46.  
  47.  getchar();
  48.  return 0;
  49. }
  50.  
  51.  
  52.    char BuscarNombre()
  53.    {
  54.        int BNombre;
  55.        cout<<"Has elegido buscar segun el nombre.."<<endl;
  56.        cout<<"Introduce el nombre de la persona que buscas..."<<endl;
  57.        cin>>BNombre;
  58.        for(i=0; i<10; i++)
  59.        if(BNombre==Plantilla[i].Nombre)
  60.        {
  61.            cout<<Plantilla[i]
  62.            return 0;
  63.        }
  64.    }
  65.  


Título: Re: [C++] Error en funcion..
Publicado por: leogtz en 27 Enero 2011, 19:29 pm
Estás intentando comparar un entero(BNombre) con Nombre que es un arreglo de char, fijate en los tipos de datos de tus campos en la estructura. Si quieres comparar busca las funciones que hay en cstring, strcmp() concretamente, aunque después la puedas sustituir por strncmp().

Además aquí:
Código
  1. if(BNombre==Plantilla[i].Nombre)
  2.        {
  3.            cout<<Plantilla[i]
  4.            return 0;
  5.        }

Te falta un punto y coma en el cout.

Saludos.


Título: Re: [C++] Error en funcion..
Publicado por: Wazzp en 28 Enero 2011, 19:47 pm
Ahh si dsp de mandarlo note lo del " ; " En el cout, gracias.. Ahora leo algo de esas funciones.. si lo termino lo pongo.. aunque es un programa tonto xD

EDIT: Aca va el programa.. si alguien podria tomarse la molestia de probarlo me haria un gran favor.. ya toy llegando tarde a una reunion x_x..

Código
  1. #include <iostream>
  2. #include <stdio.h>
  3. #include <string.h>
  4.  
  5. using namespace std;
  6.  
  7. struct Persona{
  8.        char Nombre[50];
  9.        int NumTel;
  10. } Plantilla[10];
  11.  
  12. int i,Elec;
  13.  
  14. char BuscarNombre();
  15. int BuscarNumero();
  16.  
  17.  
  18. int main()
  19. {
  20.    cout<<"Ingrese 10 nombres seguidos del numero de telefono.."<<endl;
  21.    cout<<endl;
  22.    for (i=0; i<10; i++)// Se completa el array.
  23.    {
  24.        cin>> Plantilla[i].Nombre;
  25.        cin>> Plantilla[i].NumTel;
  26.    }
  27.    //-----------------------------------------------------
  28.    //           Menu + Opciones                          *
  29.    //-----------------------------------------------------
  30.  
  31.    cout<<"-----------------------------------------"<<endl;
  32.    cout<<"Elige una de las siguientes opciones.."<<endl;
  33.    cout<<"1.- Buscar segun el nombre."<<endl;
  34.    cout<<"2.- Buscar segun el numero de telefono."<<endl;
  35.    cout<<"3.- Salir."<<endl;
  36.    cout<<endl;
  37.    cin>>Elec;
  38.  
  39.    switch(Elec)
  40.    {
  41.        case '1': BuscarNombre();
  42.        case '2': BuscarNumero();
  43.        break;
  44.    }
  45.  
  46.  getchar();
  47.  return 0;
  48. }
  49.  
  50.  
  51.    char BuscarNombre()
  52.    {
  53.        char BNombre[50];
  54.        cout<<"Has elegido buscar segun el nombre.."<<endl;
  55.        for (i=0; i<10; i++)
  56.        {
  57.            cin>>BNombre;
  58.            if (strcmp (BNombre, Plantilla[i].Nombre) == 0)
  59.            {
  60.                cout << Plantilla[i].NumTel;
  61.            }
  62.        }
  63.      return 0;
  64.    }
  65.  
  66.  
  67.    int BuscarNumero()
  68.    {
  69.        int BNumero;
  70.        for (i=0; i<10; i++)
  71.        {
  72.            cin>>BNumero;
  73.            if (BNumero == Plantilla[i].NumTel)
  74.            {
  75.                cout << Plantilla[i].NumTel;
  76.            }
  77.        }
  78.      return 0;
  79.    }