No me compila codigo en c++

Iniciado por khriscito, 21 Marzo 2015, 07:23 AM

0 Miembros y 1 Visitante están viendo este tema.

khriscito

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 (cpp) [Seleccionar]
#include<iostream>
#include<conio.h>

using namespace std;

FILE *ptr;

struct nodo{
      int status;
      int tipo_cta;
      int num_cta;
      char nomape[200];
      float tot_deposito;
      float tot_retiro;
      float saldo;
      };
main(){
      float totdeposito;
      float totretiro;
      nodo banco;
      int largo;
      int opcion;
      int numcta;
     
      largo=sizeof(banco);
     
      if((ptr=fopen("BANCO")==NULL){
                          cout<<"ERROR";
                          getch();
                          return 0;
                          }
     
     do{
      cout<<"Menu de opciones";
      cout<<endl;
      cout<<"1.-Crear nueva cuenta"<<endl;
      cout<<"2.-Eliminar una cuenta"<<endl;
      cout<<"3.-Efectuar un deposito"<<endl;
      cout<<"4.-Efectuar un retiro"<<endl;
      cout<<"5.-Mostrar estado de cuenta"<<endl;
      cout<<"6.-Finalizar proceso"<<endl;
      cout<<endl;
      cin>>opcion;
      switch(opcion){
                     case 1 :
                          cout<<"Creacion de la nueva cuenta"<<endl<<endl;
                          xx: cout<<"Ingrese numero de cuenta"<<endl<<endl;
                          cin>>numcta;cout<<endl;
                          fseek(ptr,largo*numcta,0);
                          fread(&banco,largo,1,ptr);
                          if(banco.num_cta==numcta){cout<<"la cuenta ya existe"<<endl;
                          goto xx;
                          }
                               banco.num_cta=numcta;
                               cout<<"indique tipo de cuenta"<<endl<<endl;
                               cin>>banco.tipo_cta;
                               cout<<endl;
                               fflush(stdin);
                               cout<<"ingrese nombre y apellido"<<endl<<endl;
                               gets(banco.nomape);
                               fflush(stdin);
                               cout<<endl;
                               banco.tot_deposito=0;
                               banco.tot_retiro=0;
                               banco.saldo=0;
                               banco.status=1;
                          fwrite(&banco,largo,1,ptr);
                          break;
                         
                          case 2 :
                          cout<<"indique numero de cuenta a eliminar"<<endl;
                          cin>>numcta;
                          fseek(ptr,largo*numcta,0);
                          fread(&banco,largo,1,ptr);
                          banco.status=0;
                          cout<<"la cuenta eliminada es "<<endl<<endl;
                          fread(&banco,largo,1,ptr);
                          cout<<"numero de cuenta: "<<banco.num_cta<<" tipo de cuenta: "<<banco.tipo_cta<<" nombre: "<<banco.nomape<<" status: "<<banco.status;
                          cout<<endl;
                         
                          break;
                         
                          case 3 :
                               if((ptr=fopen("BANCO","r+b"))==NULL){
                          cout<<"ERROR";
                          getch();
                          return 0;
                          }
                          cout<<"indique cuenta bancaria"<<endl;
                          cin>>numcta;
                          fseek(ptr,largo*numcta,0);
                          fread(&banco,largo,1,ptr);
                          cout<<"indique monto a depositar"<<endl;
                          cin>>totdeposito;
                          banco.tot_deposito=banco.tot_deposito+totdeposito;
                          banco.saldo=banco.saldo+banco.tot_deposito;
                          fwrite(&banco,largo,1,ptr);
                          fclose(ptr);
                          break;
                         
                          case 4 :
                               if((ptr=fopen("BANCO","w+b"))==NULL){
                          cout<<"ERROR";
                          getch();
                          return 0;
                          }
                          cout<<"indique cuenta bancaria"<<endl;
                          cin>>numcta;
                          fseek(ptr,largo*numcta,0);
                          fread(&banco,largo,1,ptr);
                          cout<<"indique monto a retirar"<<endl;
                          cin>>totretiro;
                          banco.tot_retiro=banco.tot_retiro+totretiro;
                          banco.saldo=banco.saldo-banco.tot_retiro;
                          fwrite(&banco,largo,1,ptr);
                          fclose(ptr);
                          break;
                         
                          case 5 :
                               if((ptr=fopen("BANCO","rb"))==NULL){
                          cout<<"ERROR";
                          getch();
                          return 0;
                          }
                          cout<<"indique cuenta bancaria"<<endl;
                          cin>>numcta;
                          fseek(ptr,largo*numcta,0);
                          fread(&banco,largo,1,ptr);
                          cout<<"ESTADO DE CUENTA";
                          cout<<endl<<endl;
                          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;
                          fclose(ptr);
                          break;
                     
                     }}while(opcion!=6);
      cout<<"Fin del proceso";
      getch();
      }

adicionalmente dejo los errores que me aparecen en el compilador


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

engel lex

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 (cpp) [Seleccionar]
if((ptr=fopen("BANCO")==NULL){

abre 2 paréntesis cierras uno, y a demás fopen requiere el tipo de apertura como segundo argumento
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.