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