首页 行业资讯 宠物日常 宠物养护 宠物健康 宠物故事

C++ 文件流,怎样删除文件中的一部分内容?

发布网友 发布时间:2022-04-21 06:14

我来回答

1个回答

热心网友 时间:2023-11-06 17:09

要修改或删除文本文件中的内容,您需要进行以下步骤:
打开文件:使用C++的文件处理库中的 fstream 类打开文件,并设置为输入输出模式。
#include <fstream>
#include <iostream>
using namespace std;
int main() {
fstream file;
file.open("example.txt", ios::in | ios::out);
if (!file) {
cout << "文件打开失败!" << endl;
return 1;
}
// ...接下来的代码将在这里执行
return 0;
}
定位到要修改或删除的行:使用 seekg() 函数将文件指针移到要修改或删除的行。
// 假设要删除第5行
int line_to_delete = 5;
string line;
for (int i = 1; i < line_to_delete; ++i) {
getline(file, line);
}
// 文件指针现在指向第5行
修改或删除行:使用 getline() 函数读取行,进行修改,然后使用 seekp() 函数将文件指针移到要修改的位置,使用 write() 函数将修改后的内容写入文件。如果要删除行,则只需不写入该行。
// 假设要删除第5行
int line_to_delete = 5;
string line;
for (int i = 1; i < line_to_delete; ++i) {
getline(file, line);
}
// 文件指针现在指向第5行
streampos delete_pos = file.tellg(); // 记录要删除的位置
getline(file, line); // 读取第5行
// 在这里可以对第5行进行修改
// ...
file.seekp(delete_pos); // 将文件指针移到要删除的位置
file.write(NULL, line.size() + 1); // 将该行的内容设置为空
关闭文件:完成修改后,关闭文件。
file.close();
请注意,修改文件可能会导致文件内容的更改,因此请谨慎操作。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com