21xrx.com
2025-03-31 13:19:12 Monday
文章检索 我的文章 写文章
C++如何删除文本文件中的某一行
2023-07-13 05:25:08 深夜i     241     0
C++ 删除 文本文件 某一行

在C++中,删除文本文件中的某一行可以通过以下步骤完成:

1. 打开要操作的文本文件,可以使用fstream库中的fstream类型的对象实现文件的打开和关闭。

2. 创建一个临时文件,临时文件用来存储删除后的文件内容,这里可以使用fstream库中的ofstream类型的对象创建文件。

3. 按行读取原始文件中的内容,使用getline函数逐行读取文件内容,跳过要删除的那一行。

4. 将读取的内容写入临时文件中,使用ofstream类型的对象将读取的内容写入临时文件中。

5. 关闭原始文件和临时文件。

6. 删除原始文件,使用remove函数删除原始文件。

7. 将临时文件重命名为原始文件名,使用rename函数将临时文件重命名为原始文件名,这样就可以覆盖原始文件。

下面是代码示例:

#include <iostream>
#include <fstream>
#include <string>
#include <cstdio>
using namespace std;
void deleteLineFromFile(string fileName, int lineToDelete) {
  ifstream myFile(fileName); // 打开文件
  ofstream tempFile("temp.txt"); // 创建临时文件
  string line;
  int lineNum = 1;
  while (getline(myFile, line)) {
    if (lineNum != lineToDelete) 则写入到临时文件中
      tempFile << line << endl;
    
    lineNum++;
  }
  myFile.close(); // 关闭原始文件
  tempFile.close(); // 关闭临时文件
  remove(fileName.c_str()); // 删除原始文件
  rename("temp.txt", fileName.c_str()); // 将临时文件重命名为原始文件名
}
int main() {
  string fileName = "example.txt";
  int lineToDelete = 3;
  deleteLineFromFile(fileName, lineToDelete);
  return 0;
}

上述代码将删除example.txt文件中的第3行,运行程序后,原始文件内容将被更新,第3行被删除。

  
  

评论区