C/Visual C - Problema con fopen dentro de un for

 
Vista:

Problema con fopen dentro de un for

Publicado por José María (3 intervenciones) el 24/09/2007 22:15:49
Hola a todos

Tengo un problemilla con un programa a ver si alguien me puede ayudar.

Tengo un .txt con rutas de ficheros y no consigo abrirlos uno a uno desde un procedimiento al que se llama desde un for:

El código es el siguiente:

...
//Proceso los ficheros Spam uno a uno
fgets(linea, 500, pf);
while(!feof(pf)) {

if (strcmp(linea,"spam.txt\n")!=0)
{
puts(linea);
reemplazosficherosspam(linea,array);
}

// Lee la siguiente línea:
fgets(linea, 500, pf);
}
...

void reemplazosficherosspam(char *nomfich,int *array)
{
FILE *pf;
char *nombre;

nombre=(char *)malloc(10000*sizeof(char));
nombre=strcpy(nombre,"codificados/spam/");
nombre=strcat(nombre,nomfich);
puts(nombre);

//abro el fichero con listado de correos legitimos
//AQUÍ DA EL ERROR
if( (pf = fopen(nombre,"r")) == NULL)
{
perror("Error en la apertura del fichero.");
exit(-1);
}

fclose(pf);
}

Gracias a todos de antemano y a ver si alguien me puede ayudar
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:Problema con fopen dentro de un for

Publicado por fernando.gomez (1603 intervenciones) el 24/09/2007 22:43:43
if (strcmp(linea,"spam.txt\n")!=0)
{
puts(linea);
reemplazosficherosspam(linea,array);
}

¿Qué hace ese "\n" ahí? Probablemente eso es lo que te causa problemas.

Saludos.
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:Problema con fopen dentro de un for

Publicado por José María (3 intervenciones) el 24/09/2007 22:48:48
No ese no es el problema porque en el procedimiento reemplazosficheros sí que entra el problema está en

if( (pf = fopen(nombre,"r")) == NULL)
{
perror("Error en la apertura del fichero.");
exit(-1);
}

que al pasarle la variable nombre no me lo coge bien ¿se puede poner ahí una variable?
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:Problema con fopen dentro de un for

Publicado por fernando.gomez (1603 intervenciones) el 24/09/2007 23:30:44
Claro que entra al procedimiento, pero la variable "nombre" contiene el valor "spam.txt\n", que cuando lo concatenas con la variable que va a tener el archivo (en la función reemplazosficherosspam), el valor completo quedaría como "codificados/spam/spam.txt\n" y por lo tanto tu fopen va a fallar y regresarte un NULL.

Saludos.
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:Problema con fopen dentro de un for

Publicado por José María (3 intervenciones) el 25/09/2007 09:23:14
Ok muchas gracias.
No había caído en ese detalle.

Un saludo
José María
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