C/Visual C - Problemas con fopen

 
Vista:

Problemas con fopen

Publicado por Huca (15 intervenciones) el 12/03/2001 12:25:21
Hola, tengo Borland c++4.5 y no consigo manejar la funcion fopen. Lo que intento es abrir una lista, si lo pongo sin variable funciona, o sea, asi: fopen("c:\lista.txt", "rt"); . Pero el problema es que si pongo una cadena en lugar del archivo, por ejemplo: char lista[80]; e introduzco la ruta y el archivo por medio de scanf o gets, me da un error de que no encuentra el archivo. Podria darme alguien una posible solucion?. gracias por escucharme.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problemas con fopen

Publicado por Germán B. (143 intervenciones) el 12/03/2001 16:42:03
Tiene que funcionar. Mostranos el fuente para ver qué tiene de mal.
G
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ya me funciona, tenías razon

Publicado por Huca (15 intervenciones) el 13/03/2001 17:54:35
Ya encontre el fallo, era un problema con fgets, todavia no tengo muy claro que hay que poner como segundo termino en la función fgets pero por ahora parece que funciona. El código era este y gracias por la ayuda.

FILE *fp;
cadena texto; char lista[80];
printf("\nIntroduzca el nombre de la lista:");
gets(lista);
fp = fopen(lista, "rt");
if (fp== NULL) printf("\n\nError al abrir la lista.");
else
while (!feof(fp))
{
fgets(texto, sizeof(texto)+1, fp);
printf("%s",texto);
}
fclose(fp);

NOTA: "cadena" es igual a typedef char cadena[255]
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problemas con fopen

Publicado por Negrólder!! (2 intervenciones) el 11/04/2001 05:07:46
Me hubiera gustado saber cómo estas usando la variable dentro del fopen(). Tal vez lo que estás haciendo es algo asé fopen("variable_cadena","rt"), siendo que en el caso que uses una vairable char no debe llevar cremillas o sea que debiera ser

var_archivo = fopen(var_cadena,"rt");

Por último pon mucho cuidado en la forma en que ocupas el gets(); es un poquito engañosa.

Un detalle que se me escapaba, bajo plataforma win95 "consola" (porque en realidad no es DOS) debe ir especificada la unidad, si al leer la cadena solo pones el nombre del archivo y no colocas "c:\" es muy probalble que te arroje un error.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar