21xrx.com
2024-05-20 07:29:15 Monday
登录
文章检索 我的文章 写文章
C++如何删除文本文件中的某一行
2023-07-13 05:25:08 深夜i     --     --
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行被删除。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复