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

Leer de un fichero de texto

Estas en el tema de Leer de un fichero de texto en el foro de C/C++ en Foros del Web. Hola ! :) Estoy haciendo la carga de datos desde un archivo de texto y no sé porqué no abre el fichero (solo me muestra ...
  #1 (permalink)  
Antiguo 22/01/2015, 17:24
Avatar de anggiebs  
Fecha de Ingreso: julio-2014
Ubicación: Madrid
Mensajes: 35
Antigüedad: 9 años, 9 meses
Puntos: 0
Pregunta Leer de un fichero de texto

Hola ! :)
Estoy haciendo la carga de datos desde un archivo de texto y no sé porqué no abre el fichero (solo me muestra los dos mensajes de ERROR)teniendo declarada la biblioteca fstream y estando el fichero "datos.txt" dentro de la carpeta donde guardo este programa *.*.Alguna idea de dónde está el fallo ?

Código C++:
Ver original
  1. //Así llamo a la función en el main :
  2. int main(){
  3.     tArray trabajadores;
  4.     if(cargarDatos(trabajadores)){
  5.         mostrarDatosEmpleados(trabajadores);
  6.     }
  7.     else{
  8.         cout << "ERROR:No se ha cargado correctamente el fichero!" << endl;
  9.     }
  10.     system("pause");
  11.     return 0;
  12. }
  13.  
  14.  
  15. bool cargarDatos(tArray personal){
  16.     bool ok = false;
  17.     ifstream arch("datos.txt");
  18.     if(arch.is_open()){
  19.         (...)//Resumo para que el código no sea largo :D
  20.         ok = true;
  21.     }
  22.     else{
  23.         cout << "ERROR:No se ha podido abrir el fichero!." << endl;
  24.     }
  25.     arch.close();
  26.  
  27.     return ok;
  28. }
  #2 (permalink)  
Antiguo 22/01/2015, 22:39
Avatar de vangodp  
Fecha de Ingreso: octubre-2013
Mensajes: 934
Antigüedad: 10 años, 6 meses
Puntos: 38
Respuesta: Leer de un fichero de texto

Tu programa no tiene errores. Lo que yo creo que te puede haber pasado es que tienes problemas a la hora de "crear" el archivo, digamos por una troleada de windows ya que te esconde la extencion del archivo. Lo que tu cres que el archivo se llama datos.txt pero en realidad se llama datos.txt.txt XDDD

Haz una prueba cambiando esta linea: ifstream arch("datos.txt");
por esta: ifstream arch("datos.txt.txt");

Entonces dime si te ha abierto o no. Si se abrio correctamente es que has creado tu archivo de forma manual supongo, luego le has dado el nombre "datos.txt", pero no te hace falta poner el txt, ya que de eso se encarga el windows.

Si estas liada de programacion lo mejor es que desactives la opcion, que oculta la extención de los ficheros conocidos.

En esta página te explica como desactivas dicha opción: http://windows.microsoft.com/es-es/w...ions=windows-7

Apartir de entonces los archivos se te van aparecer con las extenciones y ya no te liarás mas XD

Si son fotos los veras como foto.jpeg, si es texto te aparece como datos.txt, pero siempre veras ese puntoAlgo(.extencion). Eso evita errores como el que creo que esta pasando.

Si no era eso comenta aqui a ver si lo solucionamos. ;)

suerte.

PD: si declaras el documiento así: ifstream arch("datos.txt") el archivo debe estar junto en la misma carpeta. Caso contrario debes especicar la ruta completa o navegar por los directorios como se hace desde consola.
Una ruta completa es: "c:\unaCarpeta\otracarpeta\datos.txt", y una forma de navegar por directorios es que supongamos que tienes una carpeta principal, dentro de esta tienes 2 mas, Una se llama código y la otra archivos entonces "..\archivos\datos.txt"

No se si me equivoco en algo pero eso lo puedes averiguar por internet ;)

Última edición por vangodp; 22/01/2015 a las 22:53

Etiquetas: fichero, int, programa
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 06:44.