Insertar una nueva línea en un fichero de texto

Iniciado por matella, 15 Mayo 2015, 12:37 PM

0 Miembros y 1 Visitante están viendo este tema.

matella

Buenas, estoy empezando a programar en C++. Estoy realizando un programa que une 2 ficheros. Primero copio uno de ellos (este fichero está ordenado). A continuación voy leyendo el segundo e insertando cada línea donde corresponde para que que un fichero ordenado.
Ejemplo a pequeña escala, ya que los que pruebo son con 5000 lineas:

  Fichero 1                        Fichero 2                        Fichero Final

1                                           4                                      1
3                                          18                                     3
5                                          13                                     4
6                                                                                  5
7                                                                                  6
10                                                                                7 
                                                                                   10
                                                                                   13
                                                                                   18


Utilizando la función seekp, me logró situar en la posición que tengo que insertar, hasta ahí todo bien.
El problema es que si tengo que insertar el 4 entre el 3 y el 5. Lo que me hace es sobreescribir la línea con lo que queda 4,5 me borra el 3 o 3,4 y me borra el 5.

Lo que quiero saber es si hay alguna forma de que me lo inserte sin sobreescribir lo que hay anteriormente. Un saludo, gracias

ivancea96

Lo que puedes hacer es cargarlo en memoria y luego reescribir el fichero.

BlackM4ster

- Pásate por mi web -
https://codeisc.com