Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: qwertyui en 22 Mayo 2016, 04:22 AM

Título: Error en codigo c++ ISO c++ forbids comparision between pointer and integer
Publicado por: qwertyui en 22 Mayo 2016, 04:22 AM
Código (cpp) [Seleccionar]
#include <iostream>
#include <string>
#include <cstdlib>
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <windows.h>
#include <fstream>
#define USER "admin"
#define PASS "pavisb6"
#define ENTER 13
#define BACKSPACE 8
FILE *archivo;

using namespace std;

int main(void)
{
   system("color 0B");
  string usuario, password;
  int contador = 0;
  bool ingresa = false;

           do {
           system("cls");
           cout << "\t\t\tCyber Card" << endl;
           cout << "\n\tUsuario: ";
           getline(cin, usuario);

           cout << "\tPassword: ";

           char caracter;
           caracter = getch();

           password = "";

           while (caracter != ENTER) {

            if (caracter != BACKSPACE) {
        password.push_back(caracter);
        cout << "*";

} else {
           if (password.length() > 0) {
           cout << "\b \b";
           password = password.substr(0, password.length() - 1);
           }
}

caracter = getch();
           }


           if (usuario == USER && password == PASS) {
           ingresa = true;
           } else {
           cout << "\n\n\tEl usuario y/o clave de acceso son incorrectos" << endl;
           cin.get();
           contador++;
           }
           } while (ingresa == false && contador < 3);

           if (ingresa == false) {
           cout << "\n\tUsted no pudo ingresar al sistema. ADIOS" << endl;
           return 0;
           }
           else
           {
           cout << "\n\n\tBienvenido al sistema" << endl;
           system("PAUSE");
           }

           {

           system("cls");

           int opcion;
               }

   char decidir;
   int opcion;
   int opcion2;
   char regisc [20];
   char fechav [10];
   char tic [15];
   char pagop [10];
   char pregunta;
   char respuesta;
   bool regresar= false;
   char clientep [50];
   int opcion3;
   bool modificar=true;
   char codip [5];
   bool encontrado=true;
   do
   {
       Menu3:
       system("cls");
       cout << "Menu principal" << endl << "-----------------------" << endl;
       cout << "[1] Registrar pago con tarjeta y numero de tarjeta" << endl;
       cout << "[2] Modificar regristro de pago y  numero de tarjeta" << endl;
       cout << "[3] Consultar registro de pagos y tarjeta" << endl;
       cout << "[4] Eliminar pago con tarjeta" << endl;
       cout << "[5] imprimir recibos de confirmación de pago con tarjeta" << endl;
       cout << "[6] salir" << endl;
       cout << "-------------------------" << endl<< endl;
       cout << "Seleccione una opcion: ";
       cin >> opcion;

       switch(opcion)




       {
           case 1:
           {
           Menu1:
          system ("title Registro");
          system ("cls");
          cout << "registros" <<endl << "____________________________________" <<endl;
          cout << "[7] resgistrar pago y tarjeta" <<endl;
          cout << "[8] menu principal" << endl << "_____________________________" <<endl;
          cout << "Elige una opcion" <<endl;
          cin >> opcion2;
           }
              switch (opcion2)


       {
           case 7:
           Menu2:
           {
           system ("title saber card");
           system ("cls");
           archivo = fopen ("registro.dat","a");
           cout <<" escriba un codigo para el registro" <<endl;
           cin.getline (codip, 5) >> codip;
           fprintf(archivo, "%s\n", codip);
           cout << "escribe el  numero de la tarjeta:" <<endl;
           cin.getline (regisc, 25) >> regisc;
           fprintf(archivo, "%s\n", regisc);
           cout <<"escribe la fecha de pago:" <<endl;
           cin.getline (fechav, 10) >> fechav;
           fprintf(archivo, "%s\n", fechav);
           cout << "escribe el tipo de tarjeta:"<< endl;
           cin.getline (tic, 15) >> tic;
           fprintf(archivo, "%s\n", tic);
           cout<< "escribe el nombre del cliente" << endl;
           cin.getline (clientep, 50) >> clientep;
           fprintf (archivo, "%s\n", clientep);
           cout << "escribe el monto a pagar del ariculo:" <<endl;
           cin.getline (pagop, 25) >> pagop;
           fprintf(archivo, "%s\n", pagop);
           cout << "Desea agregar otro registro? (s/n)";
           cin >> pregunta;

           fclose(archivo);
           if (pregunta == 's' || pregunta == 'S'){ goto Menu2;}
           else{
           cout<< "Desea realizar otra operacion? (s/n)" <<endl;
           cin>> respuesta;
           if (respuesta == 's' || respuesta == 'S')
           {
            goto Menu1;
           }

           else{
           system ("cls");
           cout << "adios que vuelva pronto" <<endl;

           exit (0);
           }
           break;
           }
           case 8:
           {
           goto Menu3;
           }
           }
           }




           {
           case 2:
           {

           Menu4:
           system("title Modificar");
           system("cls");

           cout<<"Modificar"<<endl<<"------------------------"<<endl;
           cout<<"[9]Modificar regristro de pago y/o numero de tarjeta"<<endl;
           cout<<"[10]Menu principal" <<endl;
           cout<<"Elige una opcion"<<endl;
           cin>>opcion3;
           }

           {

           switch(opcion3)

           case 9:{ofstream aux;
           ifstream lectura;
            system("title modificar registro");
            system ("cls");
            encontrado=false;
            int auxcodip=0;
            char auxnombre [30];
            char auxnumtarjeta;
            aux.open("aux.dat",ios::out);
            lectura.open("registro.dat",ios::in);
            if(aux.is_open() && lectura.is_open()){
            cout<< "insgresa la clave del registro que desea modificar";
            cin>>auxcodip;
            lectura>>codip;
            while(!lectura.eof()){
            lectura>>regisc>>fechav>>tic>>clientep>>pagop;
   [u][b] if(auxcodip==codip){[/b][/u]
                   encontrado=true;
                   cout<<"____________________________"<<endl;
                   cout<<"codigo:"<<codip<<endl;
                   cout<<"num.tarjeta:"<<regisc<<endl;
                   cout<<"fecha:"<<fechav<<endl;
                   cout<<"tipo de tarjeta:"<<tic<<endl;
                   cout<<"nom. cliente:"<<clientep<<endl;
                   cout<<"pago:"<<pagop<<endl;
                   cout<<"____________________________"<<endl;
                   cout<<"ingresa el nuevo nombre del cliente con codigo"<<codip;
                   aux <<codip" "<<regisc<<" "<<fechav<<" "<< tic<<" "<< auxnombre <<" "<<pagop<<endl;

               }else{
                    aux <<codip" "<<regisc<<" "<<fechav<<" "<<tic<<" "<<clientep<<" "<<pagop<<endl;
               }
               lectura>>codip;
           }
           }else{
               cout<<"no se a podido abrir el archivo o aun no ha sido creado"<<endl;
               }
               if(encontrado==false)
               cout<<"no se encontro ningun registro con esa clave"<<auxcodip<<endl;

           }

           }
           }
           }
           }while (opcion=true);


}



Mod: Los códigos deben ir en etiquetas GeSHi
Título: Re: Error en codigo c++ ISO c++ forbids comparision between pointer and integer
Publicado por: class_OpenGL en 22 Mayo 2016, 08:19 AM
No me he fijado mucho en el código, así que no he buscado errores salvo el descrito.
El error está en la línea 221, en if(auxcodip==codip). Aquí estás comparando un entero (auxcodip) con un arreglo de caracteres (codip). Eso no lo puedes hacer.

La próxima vez, indica la línea en la que está el error
Título: Re: Error en codigo c++ ISO c++ forbids comparision between pointer and integer
Publicado por: qwertyui en 22 Mayo 2016, 08:45 AM
muchas gracias ya resolvimos el error