nose porque pero me estoy liando muchisimo con fopen y los modos de escritura.
Quiero modificar todo lo que viene dentro de un fichero, y luego escribir al principio del mismo, sin borrarlo.
Con fseek y como 3er parametro SEEK_SET
pero el problema es que si abro el archivo con w+ se me borra todo
Alguien me aclara.
Lee toda la referencia:
http://www.cplusplus.com/reference/clibrary/cstdio/fopen/ (http://www.cplusplus.com/reference/clibrary/cstdio/fopen/)
Fíjate en el parámetro a/a+.
Ya Queta, pero el caso es que lo escribe sin modificar al final del archivo. Como lo utilizo con Fseek para que pueda escribirlo al principio?
Gracias
Claro, en el principio del archivo, perdón; estás utilizando w+ y como consecuencia se borra el antiguo archivo y se crea uno con el mismo nombre. w+:
CitarCreate an empty file for both reading and writing. If a file with the same name already exists its content is erased and the file is treated as a new empty file.
Debes hacerlo con r+.
El problema es que con r+ no puedo modificar el archivo, solo lo lee..
El modo "r+" permite operaciones de lectura y escritura. Antes de realizar la operación "secundaria" (escritura) debes indicar explícitamente la posición en el archivo mediante "rewind" o "fseek".
Un detalle por lo que comentas es que estas tratando con un archivo de texto, utilizando funciones como fgets/fprintf, ¿Eso es correcto?
Un saludo
Cita de: rir3760 en 8 Septiembre 2011, 21:50 PM
El modo "r+" permite operaciones de lectura y escritura. Antes de realizar la operación "secundaria" (escritura) debes indicar explícitamente la posición en el archivo mediante "rewind" o "fseek".
Un detalle por lo que comentas es que estas tratando con un archivo de texto, utilizando funciones como fgets/fprintf, ¿Eso es correcto?
Un saludo
fprintf, si voy a ver si indicando con fseek el comienzo del archivo puedo modificarlo sin problemas
Muchas gracias.