Viernes 8 de Noviembre de 2024, 18:51
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación General
»
C/C++
(Moderador:
Eternal Idol
) »
Error Codigo!! Urge !! Problema al Leer Archivo !!
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Error Codigo!! Urge !! Problema al Leer Archivo !! (Leído 1907 veces)
Phass
Nuevo Miembro
Mensajes: 13
Error Codigo!! Urge !! Problema al Leer Archivo !!
«
en:
Lunes 29 de Noviembre de 2010, 13:03 »
0
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++
cout
<<
endl
<<
endl
<<
"--> Ruta del fichero : "
;
cin
>>
ruta
;
ruta_archivo
=
new
char
[
ruta.
size
(
)
-
1
]
;
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++
ifstream Puntos_Muestra
(
route
)
;
// Se comprueba que el fichero se ha abierto correctamente
if
(
!
Puntos_Muestra
)
{
// Código que se ejecuta bien si no se espcifica ruta o mal el nombre del fichero
}
else
{
// El programa se queda parado, supongo que aquí
}
Muchas gracias y un saludo.
Tweet
m0skit0
Miembro de PLATA
Mensajes: 2337
Nacionalidad:
Re: Error Codigo!! Urge !! Problema al Leer Archivo !!
«
Respuesta #1 en:
Lunes 29 de Noviembre de 2010, 13:57 »
0
No pones la declaración de
ruta_archivo
.
Usa la clase
string
en vez de
char*
, que para eso tienes C++
Fr33k K0mpu73r
Phass
Nuevo Miembro
Mensajes: 13
Re: Error Codigo!! Urge !! Problema al Leer Archivo !!
«
Respuesta #2 en:
Lunes 29 de Noviembre de 2010, 13:59 »
0
la declaración es:
char * ruta_archivo;
string ruta;
luego convierto el string a char* y ese char * es el parametro q l paso a la funcion donde luego se ejecuta lo anterior, pero es que no sé por qué no va...
pongo aquí parte de la funcion que abre el archivo por si acaso :
Código: C++
ifstream Puntos_Muestra
(
route
)
;
if
(
!
Puntos_Muestra
)
{
// Ejecucion correcta
cout
<<
endl
<<
endl
;
cout
<<
"No se pudo abrir el fichero. No existe o la ruta no es valida."
;
cout
<<
endl
<<
endl
;
exit
(
1
)
;
}
else
{
// Ejecución errónea, aquí se para el programa....
cout
<<
"hola"
;
// Comprobacion para ver que se abre el archivo
float
x, f_x_y
;
vector
<
float
>
componentes
(
n_var
)
;
int
n_puntos_muestra
=
0
;
float
valor_fitness
=
0
;
Puntos_Muestra
>>
x
;
while
(
!
Puntos_Muestra.
eof
(
)
)
{
for
(
int
j
=
0
;
j
<
n_var
;
j
++
)
{
componentes
[
j
]
=
x
;
Puntos_Muestra
>>
x
;
}
float
output
;
output
=
pob
[
i
]
.
Calcula_Output
(
componentes, straight_line
)
;
float
t
=
output
-
f_x_y
;
valor_fitness
+
=
pow
(
t,
2
)
;
n_puntos_muestra
++
;
Puntos_Muestra
>>
x
;
}
valor_fitness
/
=
n_puntos_muestra
;
pob
[
i
]
.
fitness
=
valor_fitness
;
}
}
m0skit0
Miembro de PLATA
Mensajes: 2337
Nacionalidad:
Re: Error Codigo!! Urge !! Problema al Leer Archivo !!
«
Respuesta #3 en:
Lunes 29 de Noviembre de 2010, 17:49 »
0
Todos los nuevos en C caen en el mismo problema
Código: C
char
*
ruta_archivo
;
Aquí estás declarando un puntero a una cadena de caracteres, PERO no reservas memoria para ello. Por tanto tienes 0 espacio para tus caracteres. Tienes que hacer algo como
Código: C
char
ruta_archivo
[
256
]
;
Para reservar memoria para 255 caracteres, o bien usar
malloc()
(y
free()
) para reservar memoria dinámicamente.
De todas formas no necesitas
char*
para nada. Usa
string
, es mucho más cómodo.
Fr33k K0mpu73r
Phass
Nuevo Miembro
Mensajes: 13
Re: Error Codigo!! Urge !! Problema al Leer Archivo !!
«
Respuesta #4 en:
Lunes 29 de Noviembre de 2010, 17:54 »
0
Hola, al final declaro un string (ruta), se lo paso a la funcion y hago:
ifstream Puntos_Muestra (ruta.c_str());
Pero el problema persiste, es decir, parece que abre el archivo, pero es como si reconociera el nombre y que está ahí pero sin embargo no sigue ejecutando sentencias...
PD: lo de reservar memoria sí me había dado cuenta pero más tarde, la verdad q era un fallo técnico algo grave
jejeje
Gracias por dedicarme tiempo eh? l verdad es que me corre algo de prisa y por mas vueltas que le doy no consigo dar con el error :S
Phass
Nuevo Miembro
Mensajes: 13
Re: Error Codigo!! Urge !! Problema al Leer Archivo !!
«
Respuesta #5 en:
Lunes 29 de Noviembre de 2010, 18:25 »
0
Ya encontré un error, el archivo si se abre, lo que no sucede es que se lea su contenido... me explico
Código: C++
ifstream Puntos_Muestra
(
route.
c_str
(
)
)
;
if
(
Puntos_Muestra.
is_open
(
)
)
{
cout
<<
"hola"
<<
endl
;
float
x
;
Puntos_Muestra
>>
x
;
cout
<<
x
;
}
// Se comprueba que el fichero se ha abierto correctamente
//if (!Puntos_Muestra)
else
{
cout
<<
endl
<<
endl
;
cout
<<
"No se pudo abrir el fichero. No existe o la ruta no es valida."
;
cout
<<
endl
<<
endl
;
exit
(
1
)
;
}
hola se imprime, pero X no...
Phass
Nuevo Miembro
Mensajes: 13
Re: Error Codigo!! Urge !! Problema al Leer Archivo !!
«
Respuesta #6 en:
Lunes 29 de Noviembre de 2010, 20:25 »
0
Al final sí se leían los número, pero no se mostraban........... Es decir, se leen si hago esto:
Código: C++
if
(
Puntos_Muestra.
is_open
(
)
)
{
cout
<<
"Hello"
<<
endl
;
float
x
;
Puntos_Muestra
>>
x
;
cout
<<
x
;
----------------------
>
asi NO se muestran los numeros
cout
<<
x
<<
endl
;
------------------
>
asi SI se muestran
}
Alguien sabe a qué se debe esto? Porque en teoria tendrían que mostrarse igualmente :S
m0skit0
Miembro de PLATA
Mensajes: 2337
Nacionalidad:
Re: Error Codigo!! Urge !! Problema al Leer Archivo !!
«
Respuesta #7 en:
Lunes 29 de Noviembre de 2010, 22:18 »
0
Puede ser que endl hace que se vacíe el buffer y se "empujen" los datos a la salida.
Fr33k K0mpu73r
Phass
Nuevo Miembro
Mensajes: 13
Re: Error Codigo!! Urge !! Problema al Leer Archivo !!
«
Respuesta #8 en:
Lunes 29 de Noviembre de 2010, 23:00 »
0
Sí, era eso.. porque probé a hacer un cout.flush() al final de las sntencias y funciona.... GRACIAS !!!
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación General
»
C/C++
(Moderador:
Eternal Idol
) »
Error Codigo!! Urge !! Problema al Leer Archivo !!