si usas solamente ios::out trunca el archivo. fijate en esta tablita (tiene equivalencias con los modos del fopen de c) lo que vos estarias buscando seria ios::in|ios::out

in: Reads (file must exist) "r"
out: Empties and writes (creates if necessary) "w"
out|trunc: Empties and writes (creates if necessary) "w"
out|app: Appends (creates if necessary) "a"
in|out: Reads and writes; initial position is the start (file must exist) "r+"
in|out|trunc: Empties, reads, and writes (creates if necessary) "w+"

la tablita es del libro "c++ standard library" de nicolai josuttis


Sergio Cirasa wrote:
Intento implementar código que realice la apertura de un archivo que ya contiene datos 
para ser modificado, el tema esta en que al abrirlo me borra los datos que contiene el 
archivo. Paso a mostrar dos códigos uno hecho en C++ que es el que no anda y uno en C que 
si anda. El archivo necesito abrirlo para realizar modificaciones que no tienen xq ser al 
final esto lo digo x si me llegan a sugerir usar "std::ios::app" ya que no 
permite el uso del seek. Salu2
/* C++ */
 /* Escritura, se crea un fichero nuevo o se sobreescribe si ya existe.*/
 std::ofstream  salida("entrada1.txt",std::ios::out);
 salida << "hola";
 salida.close();
 salida.open("entrada1.txt", std::ios::out);
 salida.seekp(2*sizeof(char));
 salida << "chau";
 salida.close();
/*En el archivo queda de la siguiente manera: chau y quiero que quede: hochau */ /* C */
 FILE * outputFile;
/*Lectura y escritura, se crea un fichero nuevo o se sobreescribe si ya 
existe.*/
 outputFile = fopen("entrada2.txt", "w+");
 fwrite("hola", 1, 4 * sizeof(char), outputFile);
 fclose(outputFile);
/*Lectura y escritura. El fichero debe existir.*/
 outputFile = fopen("entrada2.txt", "r+");
 fseek(outputFile,2,SEEK_SET);
 fwrite("chau", 1, 4 * sizeof(char) , outputFile);
fclose(outputFile); /*En el archivo queda de la siguiente manera: hochau */

---------------------------------
 Preguntá. Respondé. Descubrí.
 Todo lo que querías saber, y lo que ni imaginabas,
está en Yahoo! Respuestas (Beta).
Probalo ya!

------------------------------------------------------------------------

_______________________________________________
Lista de correo Programacion.
[email protected]
http://listas.fi.uba.ar/mailman/listinfo/programacion
_______________________________________________
Lista de correo Programacion.
[email protected]
http://listas.fi.uba.ar/mailman/listinfo/programacion

Responder a