Programa para eliminar una línea dado el número de línea de un archivo

Dado un archivo y un número de línea n, la tarea es eliminar la línea n del archivo de texto dado.
Supongamos que el contenido inicial de myfile.txt es:

GeeksforGeeks
GeeksforGeeks IDE
GeeksforGeeks Practice
GeeksforGeeks Contribute

Después de la eliminación de la línea 2 , el contenido sería:

GeeksforGeeks
GeeksforGeeks IDE
GeeksforGeeks Contribute

Enfoque:
1) Abra el archivo fuente en modo de entrada y léalo carácter por carácter.
2) Abra otro archivo en modo de salida y coloque el contenido en el archivo carácter por carácter.
3) Cambie el nombre del otro archivo al archivo de origen.

// C++ Program to delete the given
// line number from a file
#include <bits/stdc++.h>
using namespace std;
  
// Delete n-th line from given file
void delete_line(const char *file_name, int n)
{
    // open file in read mode or in mode
    ifstream is(file_name);
  
    // open file in write mode or out mode
    ofstream ofs;
    ofs.open("temp.txt", ofstream::out);
  
    // loop getting single characters
    char c;
    int line_no = 1;
    while (is.get(c))
    {
        // if a newline character
        if (c == '\n')
        line_no++;
  
        // file content not to be deleted
        if (line_no != n)
            ofs << c;
    }
  
    // closing output file
    ofs.close();
  
    // closing input file
    is.close();
  
    // remove the original file
    remove(file_name);
  
    // rename the file
    rename("temp.txt", file_name);
}
  
// Driver code
int main()
{
    int n = 3;
    delete_line("a.txt", n);
    return 0;
}
 Note: Run this code offline IDE keep text file name 
as "a.txt" in same folder 

Publicación traducida automáticamente

Artículo escrito por nickhilrawat y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *