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

Error Codigo!! Urge !! Problema al Leer Archivo !!

Estas en el tema de Error Codigo!! Urge !! Problema al Leer Archivo !! en el foro de C/C++ en Foros del Web. Hola, estoy intentando hacer una práctica en la que tengo que leer un archivo txt, pero no se por qué no se abre, si no ...
  #1 (permalink)  
Antiguo 29/11/2010, 06:06
 
Fecha de Ingreso: julio-2009
Mensajes: 16
Antigüedad: 14 años, 8 meses
Puntos: 0
Error Codigo!! Urge !! Problema al Leer Archivo !!

Hola, estoy intentando hacer una práctica en la que tengo que leer un archivo txt, pero no se por qué no se abre, si no que el programa en ejecucion se queda parado sin hacer Hola, estoy intentando hacer una práctica en la que tengo que leer un archivo txt, pero no se por qué no se abre, si no que el programa en ejecucion se queda parado sin hacer nada...

Parte del código es:

Código C++:
Ver original
  1. cout << endl << endl << "--> Ruta del fichero : ";
  2.  
  3.  cin >> ruta;
  4.  
  5.  ruta_archivo = new char [ruta.size()-1];
  6.  strcpy (ruta_archivo, ruta.c_str());


Ahora, "ruta_archivo" se lo paso a una función que, a parte de más cosas, abre el fichero, haciendo:
Código C++:
Ver original
  1. ifstream Puntos_Muestra (route);
  2.  
  3.  // Se comprueba que el fichero se ha abierto correctamente
  4.  if (!Puntos_Muestra)
  5.  {
  6.  // Código que se ejecuta bien si no se espcifica ruta o mal el nombre del fichero
  7.  }
  8.  
  9.  else
  10.  {
  11. // El programa se queda parado, supongo que aquí
  12.  }
Muchas gracias y un saludo.
  #2 (permalink)  
Antiguo 29/11/2010, 06:10
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Error Codigo!! Urge !! Problema al Leer Archivo !!

No muestras como se abre el fichero ni que lecturas haces. Deberías poner mas parte del código.
  #3 (permalink)  
Antiguo 29/11/2010, 06:14
 
Fecha de Ingreso: julio-2009
Mensajes: 16
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Error Codigo!! Urge !! Problema al Leer Archivo !!

La mayor parte de esta función es así:
Código C++:
Ver original
  1. // Ahora se abre el archivo con esa ruta
  2.         ifstream Puntos_Muestra (route);
  3.  
  4.         // Se comprueba que el fichero se ha abierto correctamente
  5.         if (!Puntos_Muestra)
  6.         {
  7.             cout << endl << endl;
  8.             cout << "No se pudo abrir el fichero. No existe o la ruta no es valida.";
  9.             cout << endl << endl;
  10.             exit(1);
  11.         }
  12.        
  13.         else
  14.         {
  15.             cout << "hola";
  16.             // Dado que el fichero vendra con formato Vi, Wi, Xi... Zi
  17.             // F(Vi, Wi, Xi....Zi), habra que declarar variables para leer dichos
  18.             // valores
  19.             float x, f_x_y;
  20.            
  21.             // Vector que almacenara componentes de los puntos muestra
  22.             // Tendra el mismo tamanio como numero de variables haya
  23.             vector<float> componentes (n_var);
  24.            
  25.             // Variable que recogera el numero de puntos muestra (Xn, Yn, F(Xn, Yn))
  26.             int n_puntos_muestra = 0;
  27.            
  28.             // Variable que almacenara el valor fitness del individuo i
  29.             float valor_fitness = 0;
  30.  
  31.             // Procesamos el primer valor
  32.             Puntos_Muestra >> x;
  33.  
  34.             while (!Puntos_Muestra.eof()) // Sigue hacbiendo valores
  35.             {
  36.                
  37.                 for (int j = 0; j <  n_var; j++)
  38.                 {
  39.                     componentes[j] = x;
  40.                     Puntos_Muestra >> x;
  41.                 }
  42.                
  43.                 // Variable que recogera el output del individuo i asociado a (Xi, Yi)
  44.                 float output;
  45.                
  46.                 // Con los valores Xi, Yi, se calcular el Output del
  47.                 // individuo
  48.                 output = pob[i].Calcula_Output (componentes, straight_line);
  49.                
  50.                 // Se actualiza el valor del fitness
  51.                 float t = output - f_x_y;
  52.                 valor_fitness += pow (t, 2);
  53.                
  54.                 // Incrementamos el numero de puntos muestra leidos
  55.                 n_puntos_muestra++;
  56.                
  57.                 // Se lee el siguiente conjunto de puntos
  58.                 Puntos_Muestra >> x;
  59.             }
  60.            
  61.             // Se calcula el valor final del fitness diviendolo entre el numero de
  62.             // puntos muestra y se asocia al individuo i
  63.             valor_fitness /= n_puntos_muestra;
  64.            
  65.             // Se asigna dicho valor fitness al individuo
  66.             pob[i].fitness = valor_fitness;
  67.         }
  68.     }

En la línea 15 he puesto ese cout << "hola" para comprobar que se abre el fichero, lo que pasa que al ejecutar el pgroama, éste se para antes de que se ejecute ésta comprobación.

Gracias de nuevo
  #4 (permalink)  
Antiguo 29/11/2010, 15:33
 
Fecha de Ingreso: enero-2008
Mensajes: 229
Antigüedad: 16 años, 2 meses
Puntos: 1
Respuesta: Error Codigo!! Urge !! Problema al Leer Archivo !!

bueno por q no utilizas para comprobar si no existió algún error al abrir el archivo utilizando el método good

http://www.cplusplus.com/reference/iostream/ifstream/
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:57.