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 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:f_l=situar_puntero(buscar_l,f_l); f_e=situar_puntero(buscar_e,f_e);
Código:
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.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); }
Gracias de antemano.
Saludos.