Ver Mensaje Individual
  #3 (permalink)  
Antiguo 29/06/2016, 09:11
dmorill
 
Fecha de Ingreso: junio-2014
Mensajes: 144
Antigüedad: 10 años, 4 meses
Puntos: 1
Respuesta: Borrar caracteres de un txt

Hola, gracias eferion. He visto que en la mayoría de lugares recomiendan copiar un archivo temporal y luego reemplazarlo.

Pero he encontrado esta librería "<experimental/filesystem>" y el método "resize_file", con los cuales he logrado mi cometido. Pero en el fondo supongo que harán algo parecido a copiar en un temporal y luego reemplazarlo.

Has utilizado está librería? qué conoces de ella? pues parece que hace parte de la std.

Código C++:
Ver original
  1. #include <iostream>;
  2. #include <fstream>;
  3. #include <string>;
  4. #include <experimental/filesystem>;
  5. using namespace std;
  6.  
  7. void path(string &s);
  8.  
  9. int main() {
  10.     string donde;
  11.     path(donde);
  12.     donde = donde + "texto.txt";
  13.     fstream file;
  14.  
  15.     file.open(donde, fstream::ate | fstream::in | fstream::out);    //ate es para empezar el cursor al fnial, es diferente de ::app
  16.     if (file.is_open()== false) {
  17.         cout << "Horror...";
  18.         return 0;
  19.     }
  20.     long pos = file.tellp();
  21.     experimental::filesystem::resize_file(donde, pos-4);
  22.     file.close();
  23.  
  24.     //cin.get();
  25.     return 0;
  26. }

Saludos,