C++程序 从文件中删除给定行号

C++程序 从文件中删除给定行号

已知一个文件和一个行号n,任务是从给定文本文件中删除第n行。

假设myfile.txt的初始内容为:

GeeksforGeeks
GeeksforGeeks IDE
GeeksforGeeks Practice
GeeksforGeeks Contribute

删除第二行后,内容将变为:

GeeksforGeeks
GeeksforGeeks IDE
GeeksforGeeks Contribute

方法:

1) 以输入模式打开源文件并逐字符读取它。

2) 以输出模式打开另一个文件,并逐字符放置文件中的内容。

3) 将另一个文件重命名为源文件。

//C++程序,用于删除给定文件中的
//行号
#include <bits/stdc++.h>
using namespace std;
  
//从给定文件中删除第n行
void delete_line(const char *file_name, int n)
{
    //以读取模式或模式打开文件
    ifstream is(file_name);
  
    //以写模式或输出模式打开文件
    ofstream ofs;
    ofs.open("temp.txt", ofstream::out);
  
    //循环获取单个字符
    char c;
    int line_no = 1;
    while (is.get(c))
    {
        //如果是换行符
        if (c == '\n')
        line_no++;
  
        //不删除文件内容
        if (line_no != n)
            ofs << c;
    }
  
    //关闭输出文件
    ofs.close();
  
    //关闭输入文件
    is.close();
  
    //删除原始文件
    remove(file_name);
  
    //重命名文件
    rename("temp.txt", file_name);
}
  
//主程序
int main()
{
    int n = 3;
    delete_line("a.txt", n);
    return 0;
}

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

C++ 示例