Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/08/2011, 13:04
Avatar de baker1562
baker1562
 
Fecha de Ingreso: marzo-2011
Ubicación: Puntarenas
Mensajes: 261
Antigüedad: 13 años, 8 meses
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.              }