c++ - 如何在文件中更新

标签 c++ file

<分区>

我有一个文件,其中包含一些详细信息:

11 apple 13 
15 banana 14
16 grapes 19

现在我将搜索 14,我知道它在第二行。所以在这里我有两个选择。我能做到

11 apple 15 
15 banana 50  //Modify that value 
16 grapes 19

或者

11 apple 15 
16 grapes 19

删除文件中的那一行。

我可以通过创建一个新文件并复制除该行之外的原始文件的内容来轻松地完成第二步。

但我发现这样做效率不高。如果我有 100 万这样的行并且删除是频繁的操作,我不能每次都这样做。

知道如何进行第一个操作(替换该特定值)以及进行第二个操作的更好方法吗?

最佳答案

  1. 将整个文件加载(读取)到内存中。
  2. 使用例如memove 在内存中执行所有替换和删除操作.
  3. 将最终内存缓冲区保存(写入)到文件中。

关于c++ - 如何在文件中更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58939581/

相关文章:

php - PHP 和 NODEjs 之间保存( secret )变量数据的通用文件类型?

c++ - 指向指针/C++ 的指针中的数据类型声明意义)

c++ - 如何通过用户输入打印一周中的 7 天?

c++ - 使用公共(public)静态常量类成员的声明

java - FileOutputStream 写入的内容少于应有的内容

C#如何锁定文件

c++ - 在C++中使用Threadpool创建线程时如何指定堆栈大小

c++ - string_view格式化流输出的实现

python - 如何避免错误的输入/输出文件名以及 C 程序中的错误参数

file - 尝试使用 lua 遍历 Directory 来列出所有文件