Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: Urban94 en 15 Abril 2014, 01:32 AM

Título: Como eliminar una linea de un txt
Publicado por: Urban94 en 15 Abril 2014, 01:32 AM
Hola gente como andan?, quisiera saber si alguno sabe una forma de eliminar una linea de un txt? en c++.

Lo que yo intente hacer es comparar el archivo original con uno que tiene un par de lineas del original, no todas, y las lineas que son diferentes ponerlas en un archivo original2 por así decirlo pero me copia una linea mal y otra que falta no la pone

Código (cpp) [Seleccionar]
#include <iostream>
#include <fstream>
using namespace std;

int main()
{
   ifstream entrada("prueba.txt"); //archivo original
   ifstream salida("prueba2.txt"); //archivo con algunas lineas del original
   ofstream salida2("prueba3.txt"); // archivo vacio para poner las lineas del
    //original que  no esten en el "prueba2.txt"
   string linea,linea2;

   while(!entrada.eof()){
       getline(entrada,linea);
       for(int i=0; i<!salida.eof();i++){
           getline(salida,linea2);
           if(linea != linea2){
               salida2 << linea << endl;
           }
       }
   }
   return 0;
}

Título: Re: Como eliminar una linea de un txt
Publicado por: x64core en 15 Abril 2014, 08:58 AM
de ::string: find  + erase:

::string.erase(0, ::string.find("\n") + 1);

elimina la primera. para determina una linea podes obtener primero el numero de lineas y validarlo, etc.