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

Problemas accediendo a ficheros.

Estas en el tema de Problemas accediendo a ficheros. en el foro de C/C++ en Foros del Web. Hola. No sé mucho de C, y me he puesto a programar para resolver un problema muy concreto, pero no consigo saber qué pasa y ...
  #1 (permalink)  
Antiguo 02/02/2011, 01:45
 
Fecha de Ingreso: diciembre-2010
Mensajes: 21
Antigüedad: 13 años, 4 meses
Puntos: 0
Problemas accediendo a ficheros.

Hola.

No sé mucho de C, y me he puesto a programar para resolver un problema muy concreto, pero no consigo saber qué pasa y no sé por qué (quizás porque mi conocimiento de C es algo incompleto).

Se trata de leer líneas de un fichero de texto que están dadas en un formato, y escribirlas en otro con otro formato.

Os escribo extractos del código para que lo veáis rápida y fácilmente.

Lo que hago es buscar la posición en la que debo escribir mediante la llamada a una función:

Código:
     f_l=situar_puntero(buscar_l,f_l);
     f_e=situar_puntero(buscar_e,f_e);
f_l y f_e son *FILE, y están abiertos como r+, y buscar_l y buscar_e son cadenas de carácteres. La función a la que llamo es:

Código:
FILE *situar_puntero(char buscar[256], FILE *fichero)
{
     char cadena[256];
     
     fgets(cadena,256,fichero);
     
     while ((strcmp(cadena,buscar) != 0) && (!feof(fichero)))
     {
	      fgets(cadena,256,fichero);
     }
     
     fprintf(fichero,"%s","Hola");
     
     return(fichero);
}
No os pongo el resto del código porque pienso que está bien, ya que depurando se sale del bucle de esta función cuando cadena=buscar, y cuando vuelve a entrar con el otro fichero vuelve a salir en el momento en el que se igualan. Viendo que la depuración aparentemente está bien, introduje la línea fprintf(fichero,"%s","Hola"); para ver si me escribía donde se me queda el puntero, e identificar si el problema era devolviendo el puntero, pero no lo hace, no escribe nada.

Gracias de antemano.

Saludos.

Etiquetas: ficheros
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 08:34.