Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: khriscito en 21 Marzo 2015, 07:23 am



Título: No me compila codigo en c++
Publicado por: khriscito en 21 Marzo 2015, 07:23 am
buenas a todos, tengo un pequeño problemilla con un programa que realize para simular las operaciones de un cajero, este programa lo realize yo hace aproximadamente un año y funcionaba perfectamente, pero ahora lo voy a revisar y resulta que me da muchos errores de compilacion, que estara pasando?

sin mas que decir adjunto el codigo:

Código
  1. #include<iostream>
  2. #include<conio.h>
  3.  
  4. using namespace std;
  5.  
  6. FILE *ptr;
  7.  
  8. struct nodo{
  9.       int status;
  10.       int tipo_cta;
  11.       int num_cta;
  12.       char nomape[200];
  13.       float tot_deposito;
  14.       float tot_retiro;
  15.       float saldo;
  16.       };
  17. main(){
  18.       float totdeposito;
  19.       float totretiro;
  20.       nodo banco;
  21.       int largo;
  22.       int opcion;
  23.       int numcta;
  24.  
  25.       largo=sizeof(banco);
  26.  
  27.       if((ptr=fopen("BANCO")==NULL){
  28.                           cout<<"ERROR";
  29.                           getch();
  30.                           return 0;
  31.                           }
  32.  
  33.      do{
  34.       cout<<"Menu de opciones";
  35.       cout<<endl;
  36.       cout<<"1.-Crear nueva cuenta"<<endl;
  37.       cout<<"2.-Eliminar una cuenta"<<endl;
  38.       cout<<"3.-Efectuar un deposito"<<endl;
  39.       cout<<"4.-Efectuar un retiro"<<endl;
  40.       cout<<"5.-Mostrar estado de cuenta"<<endl;
  41.       cout<<"6.-Finalizar proceso"<<endl;
  42.       cout<<endl;
  43.       cin>>opcion;
  44.       switch(opcion){
  45.                      case 1 :
  46.                           cout<<"Creacion de la nueva cuenta"<<endl<<endl;
  47.                           xx: cout<<"Ingrese numero de cuenta"<<endl<<endl;
  48.                           cin>>numcta;cout<<endl;
  49.                           fseek(ptr,largo*numcta,0);
  50.                           fread(&banco,largo,1,ptr);
  51.                           if(banco.num_cta==numcta){cout<<"la cuenta ya existe"<<endl;
  52.                           goto xx;
  53.                           }
  54.                                banco.num_cta=numcta;
  55.                                cout<<"indique tipo de cuenta"<<endl<<endl;
  56.                                cin>>banco.tipo_cta;
  57.                                cout<<endl;
  58.                                fflush(stdin);
  59.                                cout<<"ingrese nombre y apellido"<<endl<<endl;
  60.                                gets(banco.nomape);
  61.                                fflush(stdin);
  62.                                cout<<endl;
  63.                                banco.tot_deposito=0;
  64.                                banco.tot_retiro=0;
  65.                                banco.saldo=0;
  66.                                banco.status=1;
  67.                           fwrite(&banco,largo,1,ptr);
  68.                           break;
  69.  
  70.                           case 2 :
  71.                           cout<<"indique numero de cuenta a eliminar"<<endl;
  72.                           cin>>numcta;
  73.                           fseek(ptr,largo*numcta,0);
  74.                           fread(&banco,largo,1,ptr);
  75.                           banco.status=0;
  76.                           cout<<"la cuenta eliminada es "<<endl<<endl;
  77.                           fread(&banco,largo,1,ptr);
  78.                           cout<<"numero de cuenta: "<<banco.num_cta<<" tipo de cuenta: "<<banco.tipo_cta<<" nombre: "<<banco.nomape<<" status: "<<banco.status;
  79.                           cout<<endl;
  80.  
  81.                           break;
  82.  
  83.                           case 3 :
  84.                                if((ptr=fopen("BANCO","r+b"))==NULL){
  85.                           cout<<"ERROR";
  86.                           getch();
  87.                           return 0;
  88.                           }
  89.                           cout<<"indique cuenta bancaria"<<endl;
  90.                           cin>>numcta;
  91.                           fseek(ptr,largo*numcta,0);
  92.                           fread(&banco,largo,1,ptr);
  93.                           cout<<"indique monto a depositar"<<endl;
  94.                           cin>>totdeposito;
  95.                           banco.tot_deposito=banco.tot_deposito+totdeposito;
  96.                           banco.saldo=banco.saldo+banco.tot_deposito;
  97.                           fwrite(&banco,largo,1,ptr);
  98.                           fclose(ptr);
  99.                           break;
  100.  
  101.                           case 4 :
  102.                                if((ptr=fopen("BANCO","w+b"))==NULL){
  103.                           cout<<"ERROR";
  104.                           getch();
  105.                           return 0;
  106.                           }
  107.                           cout<<"indique cuenta bancaria"<<endl;
  108.                           cin>>numcta;
  109.                           fseek(ptr,largo*numcta,0);
  110.                           fread(&banco,largo,1,ptr);
  111.                           cout<<"indique monto a retirar"<<endl;
  112.                           cin>>totretiro;
  113.                           banco.tot_retiro=banco.tot_retiro+totretiro;
  114.                           banco.saldo=banco.saldo-banco.tot_retiro;
  115.                           fwrite(&banco,largo,1,ptr);
  116.                           fclose(ptr);
  117.                           break;
  118.  
  119.                           case 5 :
  120.                                if((ptr=fopen("BANCO","rb"))==NULL){
  121.                           cout<<"ERROR";
  122.                           getch();
  123.                           return 0;
  124.                           }
  125.                           cout<<"indique cuenta bancaria"<<endl;
  126.                           cin>>numcta;
  127.                           fseek(ptr,largo*numcta,0);
  128.                           fread(&banco,largo,1,ptr);
  129.                           cout<<"ESTADO DE CUENTA";
  130.                           cout<<endl<<endl;
  131.                           cout<<"numero de cuenta: "<<banco.num_cta<<" tipo de cuenta: "<<banco.tipo_cta<<" nombre: "<<banco.nomape<<" status: "<<banco.status<<" total en BsF de depositos: "<<banco.tot_deposito<<" total en BsF en retiros: "<<banco.tot_retiro<<" y saldo actual es: "<<banco.saldo<<endl;
  132.                           fclose(ptr);
  133.                           break;
  134.  
  135.                      }}while(opcion!=6);
  136.       cout<<"Fin del proceso";
  137.       getch();
  138.       }
  139.  
adicionalmente dejo los errores que me aparecen en el compilador


Código:
C:\Dev-Cpp\include\stdio.h In function `int main()': 
178 C:\Dev-Cpp\include\stdio.h too few arguments to function `FILE* fopen(const char*, const char*)'
27 C:\Users\FEMIKAL\Desktop\Lenguaje\parcial3.cpp at this point in file
27 C:\Users\FEMIKAL\Desktop\Lenguaje\parcial3.cpp cannot convert `bool' to `FILE*' in assignment
27 C:\Users\FEMIKAL\Desktop\Lenguaje\parcial3.cpp expected `)' before '{' token


Mod: Al publicar código usa las etiquetas GeSHi y para los errores usa las de código simple o cita


Título: Re: No me compila codigo en c++
Publicado por: engel lex en 21 Marzo 2015, 08:15 am
tal vez tenias otro archivo, si lees el error te dice que en linea 27 fopen tiene muy pocos argumentos y se esperaba parentesis

linea 27
Código
  1. if((ptr=fopen("BANCO")==NULL){

abre 2 paréntesis cierras uno, y a demás fopen requiere el tipo de apertura como segundo argumento