📜  程序从文件中删除给出行号的行

📅  最后修改于: 2021-05-31 17:01:57             🧑  作者: Mango

给定一个文件和一个行号n,任务是从给定的文本文件中删除n行。
假设myfile.txt的初始内容为:

GeeksforGeeks
GeeksforGeeks IDE
GeeksforGeeks Practice
GeeksforGeeks Contribute

删除第2行后,内容为:

GeeksforGeeks
GeeksforGeeks IDE
GeeksforGeeks Contribute

方法 :
1)打开在输入模式源文件,并通过读字符它字符。
2)由字符在文件字符打开在输出模式和地点的内容的另一个文件。
3)将另一个文件重命名为源文件。

// C++ Program to delete the given
// line number from a file
#include 
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 
想要从精选的最佳视频中学习并解决问题,请查看有关从基础到高级C++的C++基础课程以及有关语言和STL的C++ STL课程。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程”