gpt4 book ai didi

c++ - 如何从 C++ 中的文本文件中删除一行?

转载 作者:行者123 更新时间:2023-11-30 04:54:54 41 4
gpt4 key购买 nike

我想删除一行我的文本文件而不用“”替换它。正如旁注:我的文件有换行符。所以我有不止一行(比如一张表格)

void Data::delete_line(const string& idNr) {
ifstream list;
string readFile, id;
list.open("list.txt", ios::app);

if (list.is_open()) {
while (getline(list, readFile)) {
int pos = readFile.find(';');
id = readFile.substr(0, pos);
if (idNr == id) {
//deleting the line here
}
}
}

}

我找到了 this question但它并没有解决我的问题:

最佳答案

也许您可以创建一个新文件并将您的数据放入新文件中。像这样:

void Data::delete_line(const string& idNr) {
ifstream list;
ofstream outFile("newList.txt");
string readFile, id;

list.open("list.txt", ios::app);

if (list.is_open()) {
while (getline(list, readFile)) {
int pos = readFile.find(';');
id = readFile.substr(0, pos);
if (idNr != id) {
outFile << readFile;
}
}
}
list.close();
outFile.close();

remove("list.txt");
rename("newList.txt", "list.txt");
}

最后,您只需删除旧文件并使用旧文件的名称重命名新文件。我希望这能解决您的问题。

关于c++ - 如何从 C++ 中的文本文件中删除一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53381654/

41 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com