使用c++中的istream/ofstream删除txt文件中的特定行
Deleting a specific line in a txt file using istream/ofstream in c++
这是我遇到问题的代码,我有一个.txt文件,其中包含使用以下格式的用户及其密码列表:user;password
。我需要在文件中搜索一个用户,然后删除包含该用户的行。
void deleteauser()
{
string user;
cout<<"Which user do you wish to delete?";
cin>>user;
string line;
string delimiter=";";
string token,token1;
ifstream infile;
infile.open("users.txt",ios::in);
while (getline(infile,line,'n'))
{
token = line.substr(0, line.find(delimiter));
token1=line.substr(token.length(), line.find('n'));
if(token==user)
{
//here i need to delete the line of the user that has been found
}
}
infile.close();
}
逐行读取输入文件,写入临时文件。当你找到不想要的行时,不要把它们写到临时文件中。完成后,将临时文件重命名为实际文件。
要编辑文件,有两个选项:
- 读每一行,写下你想保留的
- 查找要删除的文件部分,并用空格(或类似内容)替换文本
你已经完成了前半部分——只需将你读到的内容写到一个临时文件中,然后删除/重命名以使其成为原始文件。
对于第二个选项,如果使用iofstream(注意缓冲问题),则可以在此时写入输入文件。更好的选择是在覆盖文件之前使用seekp或seekg到达正确的点。
相关文章:
- 如何将 txt 文件中的行分隔为组件C++
- 在CMakeLists.txt的安装功能中使用.cmake文件有什么用
- 一种在C++中读取TXT配置文件的简单方法
- 无法打开.txt文件
- 如何使用CLion在Mac上创建一个新的.txt文件
- 我可以读取静态对象中的文件.txt吗?C++
- C++-需要读取存储在文件(.txt)中的时间戳并正确检索
- 具有文件.txt的 C++ 中的设置
- 如何在 CMakeList 中包含 h/hpp 头文件.txt而不是 cpp 或其他 hpp 文件
- 使用函数读取文件.txt中的矩阵
- 任何人都知道如何解决尝试将从MySQL数据库返回的行打印到文本文件(.txt)中的C++
- 读取文件.txt C
- 为什么我的方法不从文件.txt中读取float类型
- 如何读取名称(仅文件.txt)作为参数传递的文件(在任何目录中)?C++
- 读取文件".txt"并将每行的数据分配给循环列表中的新节点C++
- 如何用C++将字符串文件Txt解析成数组
- 如何在c++中读取和编辑文件txt
- 从文件.txt读取字符串数组并使用它来玩康威的生命游戏
- 导入文件txt时出错
- 如何仅读取文件.txt中的数字