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

Manejo de excepciones

Estas en el tema de Manejo de excepciones en el foro de C/C++ en Foros del Web. Hola, buenas, bueno estoy haciendo un programa de entrada y salida de flujos, donde se crea un archivo "Lectura.dat" y "Escritura.txt", si alguno no existe ...
  #1 (permalink)  
Antiguo 01/08/2011, 13:04
Avatar de baker1562  
Fecha de Ingreso: marzo-2011
Ubicación: Puntarenas
Mensajes: 261
Antigüedad: 13 años, 1 mes
Puntos: 9
Pregunta Manejo de excepciones

Hola, buenas, bueno estoy haciendo un programa de entrada y salida de flujos, donde se crea un archivo "Lectura.dat" y "Escritura.txt", si alguno no existe el lanza una excepcion, pero por algun razon el programa no me funcione y no se que hacer, agradeceria que alguien me ayuda un poco si son tan amables!!

Código C:
Ver original
  1. #include <iostream>
  2. #include <fstream>
  3. #include <exception>
  4. #include <cstdlib>
  5.  
  6. using namespace std;
  7.  
  8. class ExceptionNoExiste : public exception{
  9.      
  10.       public:
  11.              
  12.              ExceptionNoExiste::ExceptionNoExiste()
  13.               :exception("Archivo no existe o aun no se ha creado") {}
  14.              
  15.              };
  16.       int main()
  17.       {
  18.           char palabras[30];
  19.           int opcion;
  20.           int opcion2;
  21.           string respuesta;
  22.          
  23.           while(respuesta!="N" && respuesta!="n")
  24.           {
  25.          
  26.              cout<<"*******Digite #1, para pasar archivo de lectura al de escritura*******"<<endl;
  27.              cout<<"*******Digite #2, para escribir en el archivo de lectura*******"<<endl;
  28.              cout<<"*******Digite #3, para mostrar el archivo de lectura*******"<<endl;
  29.              cout<<"*******Digite #4, para mostrar el archivo de escritura*******"<<endl;
  30.              cout<<"*******Digite #5, para borrar el archivo de lectura*******"<<endl;
  31.              cout<<"*******Digite #6, para salir del programa*******"<<endl;
  32.              cout<<endl;
  33.              cout<<"Que opcion desea ingresar?"<<endl;
  34.              cin>>opcion;
  35.              system("cls");
  36.              
  37.              switch(opcion)
  38.              {
  39.                            case 1:
  40.                                 {
  41.                                      cout<<"******Digite #1, para pasar el archivo a mayusculas!!******"<<endl;
  42.                                      cout<<"******Digite #2, para pasar el archivo a minusculas!!******"<<endl;
  43.                                      cout<<endl;
  44.                                      cout<<"Que opcion desea realizar?"<<endl;
  45.                                      cin>>opcion2;
  46.                                      system("cls");
  47.                                      
  48.                                      switch(opcion2)
  49.                                      {
  50.                                      
  51.                                      case 1:
  52.                                           {
  53.                                            ifstream ArchivoLecturaEntrante("Lectura.dat", ios::in);
  54.                                            ofstream ArchivoEscrituraSaliente("Escritura.txt", ios::out);
  55.                                      
  56.                                            if(!ArchivoLecturaEntrante)
  57.                                            {
  58.                                               throw ExceptionNoExiste();
  59.                                               system("pause");
  60.                                                }
  61.                                      
  62.                                               if(!ArchivoEscrituraSaliente)
  63.                                                  {
  64.                                                    throw ExceptionNoExiste();
  65.                                                    system("pause");
  66.                                                     }
  67.                                        
  68.                                                    ArchivoLecturaEntrante>>palabras;
  69.                                                    
  70.                                                    for(int i=0,i<30;i++)
  71.                                                    {
  72.                                                        palabras[i]=toupper(palabras[i]);
  73.                                                        }
  74.                                                        
  75.                                                    ArchivoEscrituraSaliente<<palabras;
  76.                                                    
  77.                                                    cout<<"Cambio Exitoso!!!"<<endl;
  78.                                                    cout<<endl;
  79.                                                    
  80.                                                    }
  81.                                         break;
  82.                                        
  83.                                         case 2:
  84.                                              {
  85.                                                    ifstream ArchivoLecturaEntrante("Lectura.dat", ios::in);
  86.                                                    ofstream ArchivoEscrituraSaliente("Escritura.txt", ios::out);
  87.                                      
  88.                                            if(!ArchivoLecturaEntrante)
  89.                                            {
  90.                                               throw ExceptionNoExiste();
  91.                                               system("pause");
  92.                                                }
  93.                                      
  94.                                               if(!ArchivoEscrituraSaliente)
  95.                                                  {
  96.                                                    throw ExceptionNoExiste();
  97.                                                    system("pause");
  98.                                                     }
  99.                                        
  100.                                                    ArchivoLecturaEntrante>>palabras;
  101.                                                    
  102.                                                    for(int i=0,i<30;i++)
  103.                                                    {
  104.                                                        palabras[i]=tolower(palabras[i]);
  105.                                                        }
  106.                                                        
  107.                                                    ArchivoEscrituraSaliente<<palabras;
  108.                                                    }
  109.                                         break;
  110.                                         }
  111.                            case 2:
  112.                                 {
  113.                                         ofstream ArchivoLecturaSaliente("Lectura.dat", ios::out);
  114.                                        
  115.                                         if(!ArchivoEscrituraSaliente)
  116.                                         {
  117.                                            throw ExceptionNoExiste();
  118.                                            system("pause");
  119.                                            }
  120.                                            
  121.                                            cout<<"Ingrese una palabra de 30 digitos maximo"<<endl;
  122.                                            cin>>palabras;
  123.                                            cout<<endl;
  124.                                            
  125.                                            ArchivoLecturaSaliente<<palabras;
  126.                                            
  127.                                            }
  128.                            break;
  129.                            }
  130.                            
  131.              cout<<"Desea realizar otra accion s/n?"<<endl;
  132.              cin>>respuesta;
  133.              system("cls");
  134.              
  135.              }
  136.              return 0;
  137.              }
  #2 (permalink)  
Antiguo 01/08/2011, 18:28
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Manejo de excepciones

Aprende a leer los errores de compilacion . te marca que el for esta mal hecha la sintaxys. Corrige la coma por el punto y coma.

Luego el archivo ArchivoEscrituraSaliente nunca lo declaraste. Fiajte que en el resto del codigo usas ArchivoLecturaSaliente.

Por ultimo el emparejamiento de llave esta mal. Fijate que te estan faltando un par. Semejante tabulacion y espacio no te puedes olvidar una llave jeje.

Saludos
  #3 (permalink)  
Antiguo 01/08/2011, 19:58
Avatar de baker1562  
Fecha de Ingreso: marzo-2011
Ubicación: Puntarenas
Mensajes: 261
Antigüedad: 13 años, 1 mes
Puntos: 9
Respuesta: Manejo de excepciones

Cita:
Iniciado por sam90 Ver Mensaje
Aprende a leer los errores de compilacion . te marca que el for esta mal hecha la sintaxys. Corrige la coma por el punto y coma.

Luego el archivo ArchivoEscrituraSaliente nunca lo declaraste. Fiajte que en el resto del codigo usas ArchivoLecturaSaliente.

Por ultimo el emparejamiento de llave esta mal. Fijate que te estan faltando un par. Semejante tabulacion y espacio no te puedes olvidar una llave jeje.

Saludos
despues de hacer este tema corregi los errores de sintaxis, pero aun me quedaban los errores de excepcion, y ahi es donde estoy medio pegado
  #4 (permalink)  
Antiguo 02/08/2011, 12:48
 
Fecha de Ingreso: febrero-2007
Mensajes: 163
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: Manejo de excepciones

El main adentro de la clase?, la clase derivada de la clase exception?. Me parece que te estas confundiendo con java, la funcion main es afuera.
La clase no entiendo para que la derivas de excepcion si no vas a implementar una excepcion de usuario.

Etiquetas: excepciones
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 03:55.