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

Porque me tira error el programa?

Estas en el tema de Porque me tira error el programa? en el foro de C/C++ en Foros del Web. wenas tengo problemas con 2 funciones bool una se fija si el archivo existe y si no hay la otra la crea eso tendria que ...
  #1 (permalink)  
Antiguo 21/09/2008, 15:03
 
Fecha de Ingreso: mayo-2007
Ubicación: Buenos aires
Mensajes: 19
Antigüedad: 17 años
Puntos: 0
Porque me tira error el programa?

wenas tengo problemas con 2 funciones bool una se fija si el archivo existe y si no hay la otra la crea eso tendria que pasar si no fuera porque me tira error de windows el compilador.. por eso las desabilite y crea un archivo nuevo cada ves que entra -_- cosa que no quiero, por eso quiero saber porque me tira error y si se puede solucionar?
el codigo este no sirve porque lo recorte porque no era muy largo pero ahi se ven las funciones bool que me tiran error
Código:
#include <iostream>
#include <conio.c>
#include <teclado.h>

using namespace std;
struct tagenda
{
  char nom[30];
  char ape[30];
  unsigned long tel;
  char dir[30];
  char eml[30];
  int b;
};
bool abrir(char *);
bool crear(char *);
void ingresar(tagenda *);
void modificar(tagenda *);
void mostrar(tagenda *);
void mtodo(tagenda *);
void mxnom(tagenda *);
void mxdir(tagenda *);
void mxtel(tagenda *);
void mxape(tagenda *);
void mxem(tagenda *);
void mbaja(tagenda *);
void baja(tagenda *);
void cr(tagenda *);
void rbaja(tagenda *);
//char* bd(tagenda *);
//struct tp br(tp *);
int main (int argc, char* argv[])
{
  tagenda age;
  char op;
  char *c;
  int l;

  do
  {
  clrscr();

    cout<<"           Presione las teclas Numerales para acceder a cada Opcion         "<<endl<<endl<<endl;
    cout<<"1-Agregar Contactos"<<endl;
    cout<<"2-Modificar Datos de los Contactos"<<endl;
    cout<<"3-Mostrar Contactos"<<endl;
    cout<<"4-Dar de Baja a un contacto"<<endl;
    cout<<"5-Contar la cantidad de Contactos que Tengo"<<endl;
    cout<<"6-Descripcion art"<<endl;
    cout<<"7-Recuperar Un Registro Dado de Baja"<<endl;
    cout<<"8-Ayuda"<<endl;
    cout<<"s-Presione La Tecla 'S' para Salir del Programa"<<endl;


    op=getch();
    switch(op)
    {
      case '1':
      ingresar(&age);
      break;
      case '2':
      modificar(&age);
      break;
      case '3':
      mostrar(&age);
      break;
      case '4':
      baja(&age);
      break;
       case '5':
      cr(&age);
      break;
      case '6':
   // c=bd(&age);
      cout<<"salio esto"<<endl;
      getch();
      break;
       case '7':
      rbaja(&age);
      break;
       case '8':
      ayuda();
      break;
      case 's':
        op='s';
        break;
    }
  }while(op!='s');

  return 0;
}
void ingresar(tagenda *pag)
{
  char opc;
  char nom[]="c:\\agenda.dot";
 //       if(abrir(nom))
 //      {
 //           cout<<"arch existe"<<endl; // me provoca Error si habilito esas funciones BOOL
  //          getch();
  //      }
    //   else
     //      {
    //        if(crear(nom))
     //    cout<<"arch creado"<<endl;
          //  }
     //       else
 //           cout<<"no se puedo crear"<<endl;
  //          }
  FILE *arch;
  if((arch=fopen(nom,"wb"))==NULL)
  cout<<"El Archivo no Existe";

  else
  {
        do
      {
        cout<<endl<<"Ingrese Nombre del Contacto: ";
        fflush(stdin);
        cin.getline((pag->nom),30);
        while(strlen(pag->nom)>10)
        {
          cout<<endl<<"Reingrese Nombre: ";
          fflush(stdin);
          cin.getline((pag->nom),30);
        }
        cout<<endl<<"Ingrese Apellido del Contacto: ";
        fflush(stdin);
        cin.getline((pag->ape),30);
        while(strlen(pag->ape)>10)
        {
          cout<<endl<<"Reingrese el Apellido: ";
          fflush(stdin);
          cin.getline((pag->ape),30);
        }
        cout<<endl<<"Ingrese Direccion del Domicilio del Contacto: ";
        fflush(stdin);
        cin.getline((pag->dir),30);
             while(strlen(pag->dir)>10)
        {
          cout<<"Reingrese la Direccion: "<<endl;
          fflush(stdin);
          cin.getline((pag->dir),30);
        }
        cout<<endl<<"Ingrese el Telefono del Contacto: ";
        cin>>pag->tel;
          while((pag->tel)>10)
        {
          cout<<endl<<"Reingrese el Telefono: ";
          cin>>pag->tel;
        }
        cout<<endl<<"Ingrese Direccion Email: ";
        fflush(stdin);
        cin.getline((pag->eml),30);
           while(strlen(pag->eml)>10)
        {
          cout<<endl<<"Reingrese Direccion Email: ";
          fflush(stdin);
          cin.getline((pag->eml),30);
        }
        pag->b=1;
        cout<<"Presione la Tecla 's' para Salir o cualquier otra Tecla para Continuar: "<<endl;
        fwrite(pag,sizeof(tagenda),1,arch);
        opc=getch();
     }while(opc!='s');
  }
  clrscr();
fclose(arch);
}
bool abrir(char *c)
{

 FILE *arc;

  if((arc=fopen(c,"rb"))==NULL)
    {
      fclose (arc);
      return  (false);
    }

  else
  {
  fclose (arc);
  return (true);
  }
}
bool crear(char *c)
{
  FILE *arc;

if((arc=fopen(c,"wb"))==NULL)
    {
      fclose(arc);
      return  (false);
    }

    else
  {
  fclose(arc);
  return (true);
  }
}
void rbaja(tagenda *pag)
{
  clrscr();
  char c[30],op;
  int ct=0;
  cout<<endl<<"Ingrese Nombre del Registro Dado de Baja para Recuperar: ";
  fflush(stdin);
  cin.getline(c,30);
    while(strlen(c)>10)
        {
          cout<<endl<<"reingrese Nombre del Registro Dado de Baja para Recuperar: ";
          fflush(stdin);
          cin.getline(c,30);
        }
  FILE *arch;

  if((arch=fopen("c:\\agenda.dot","rb+"))==NULL)
  cout<<"El Archivo no Existe";

  else
  {
  clrscr();
  while(fread(pag,sizeof(tagenda),1,arch)==1)
  {
	  if(!strcmp(c,pag->nom))
    {
      cout<<"Registro Encontrado"<<endl;
      cout<<pag->nom<<endl;
      getch();
      cout<<"Esta Seguro en Recuperar el Registro "<<pag->nom<<" Pulse la Tecla S para confirmar Si: "<<endl;
      op=getch();
       if(op=='s')
      {
      pag->b=1;
      fseek(arch,ftell(arch)-sizeof(tagenda),0);//vuelvo reg anterior
      fwrite(pag,sizeof(tagenda),1,arch);
      cout<<"Registro Dado de Alta"<<endl;
      cout<<pag->nom<<endl;
      getch();
      fclose(arch);
      }
    }
    else
  	{
  	cout<<"No Existe Registro"<<endl;
  	getch();
  	}
  }
  }//else
	fclose(arch);
}
void mxem(tagenda *pag)
{
  clrscr();
  char nm[30],op;
  int ct=0;
  cout<<endl<<"Ingrese Email del Registro: ";
  fflush(stdin);
  cin.getline(nm,30);
    while(strlen(nm)>10)
        {
          cout<<endl<<"Reingrese Email del Registro: ";
          fflush(stdin);
          cin.getline(nm,30);
        }

FILE *arc;

  if((arc=fopen("c:\\agenda.dot","rb+"))==NULL)
  cout<<"El Archivo no Existe";

  else
  {
  fread(pag,sizeof(tagenda),1,arc);
  while(!feof(arc))
  {
    if(pag->b==1)
    {
	  if(!strcmp(nm,pag->eml))
    {
        ct++;
        if(ct==8)
        {
          cout<<"Para continuar Aprete cualquier Tecla, Presione ESC para salir"<<endl;
          ct=0;
          fflush(stdin);
          op=leerTecla();
          if(op==27)
          {
            break;
          }
        }
       cout<<"Registro Encontrado"<<endl;
       cout<<endl<<"Nombre: "<<(pag->nom)<<endl;
       cout<<"Apellido: "<<(pag->ape)<<endl;
       cout<<"Telefono: "<<(pag->tel)<<endl;
       cout<<"Domicilio: "<<(pag->dir)<<endl;
       cout<<"Email: "<<(pag->eml)<<endl;
       getch();
  	}
  	}
  	fread(pag,sizeof(tagenda),1,arc);
  }
  }
	fclose(arc);
}
void mxape(tagenda *pag)
{
  clrscr();
  char nm[30],op;
  int ct=0;
  cout<<endl<<"Ingrese Apellido del Registro: ";
  fflush(stdin);
  cin.getline(nm,30);
    while(strlen(nm)>10)
        {
          cout<<endl<<"Reingrese Apellido del Registro: ";
          fflush(stdin);
          cin.getline(nm,30);
        }
  FILE *arc;

  if((arc=fopen("c:\\agenda.dot","rb+"))==NULL)
  cout<<"El Archivo no Existe";
  else
  {
  fread(pag,sizeof(tagenda),1,arc);
  while(!feof(arc))
  {
    if(pag->b==1)
    {
	  if(!strcmp(nm,pag->ape))
    {
        ct++;
        if(ct==8)
        {
          cout<<"Para continuar Aprete cualquier Tecla, Presione ESC para salir"<<endl;
          ct=0;
          fflush(stdin);
          op=leerTecla();
          if(op==27)
          {
            break;
          }
        }
       cout<<"Registro Encontrado"<<endl;
       cout<<endl<<"Nombre: "<<(pag->nom)<<endl;
       cout<<"Apellido: "<<(pag->ape)<<endl;
       cout<<"Telefono: "<<(pag->tel)<<endl;
       cout<<"Domicilio: "<<(pag->dir)<<endl;
       cout<<"Email: "<<(pag->eml)<<endl;
       getch();
  	}
  	}
  	else
  	cout<<"no existe registro"<<endl;

  	fread(pag,sizeof(tagenda),1,arc);
  }
  }
	fclose(arc);
}
  #2 (permalink)  
Antiguo 21/09/2008, 22:55
 
Fecha de Ingreso: diciembre-2007
Mensajes: 16
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: Porque me tira error el programa?

veo que estas haciendo una agenda, voy a provar tu codigo y vamos a ver como funciona,sass.. se ve que el codigo esta bien,
  #3 (permalink)  
Antiguo 23/09/2008, 11:06
Avatar de antoniog  
Fecha de Ingreso: junio-2006
Mensajes: 118
Antigüedad: 17 años, 10 meses
Puntos: 4
Pregunta Respuesta: Porque me tira error el programa?

Hola,

Que errror te marca?

Saludos
__________________
Mis pininos en blogs: prog en C, cursos

Última edición por antoniog; 25/10/2009 a las 13:21
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 15:45.