如何在文件中查找字符串?在我的代码中,我想在文件中找到一个人的名字。并执行评论中的操作。这是我的代码:
int main(){
size_t found;
ofstream myfile;
cout << "Enter the name you wish to delete." << endl;
getline(cin, name);
myfile.open("database.dat");
found=myfile.find(name);
if (found!=string::npos){
number = myfile.tellg();
/*Delete current line and next line*/
}
}
最佳答案
你想修改文件,还是在阅读时跳过这两行?
实际上,两者的解决方案是一样的,因为从文件中间删除数据需要读取之后的所有内容并用偏移量重写(就像从数组中间删除一个元素一样)。
因此,将整个文件读入内存,除了您确定需要删除的任何行(跳过那些行)。之后,将幸存的行写回磁盘。使用一个临时文件作为最后一步移动到原始名称可能是个好主意,这样如果您的进程中止,数据就不会被破坏。
关于c++ - 我如何从 C++ 文件中找到一个字符串并使用以下字符串删除它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13992130/