0

所以我有一个看起来像这样的txt文件:

112 12.50 是 15

267 7.75 牛顿 20

382 15.50 N 45

提示用户在哪里插入新 ID。我的工作是让程序在不完全覆盖所有信息的情况下将新 ID 写入 .txt 文件。假设用户想在 267 之后插入新 ID。用户告诉我新 ID 是 123、12.34、N、12。.txt 文件必须如下所示:

112 12.50 是 15

267 7.75 牛顿 20

123 12.34 N 12

382 15.50 N 45

4

3 回答 3

3

在标准 C 中,没有在文件中的某个位置插入新数据的功能。

纯 C 中仅有的两个选项是:

  1. 创建一个临时文件,将旧文件的数据复制到插入点到临时文件,将新数据写入临时文件,将旧文件的其余数据复制到临时文件,将临时文件重命名为旧文件的姓名。
  2. 弄清楚需要插入多少新数据,将插入点的所有数据移动(通过复制)该数量,在插入点写入新数据。

可能存在特定于操作系统的函数来在文件中的任意位置插入数据。但是,同样,不在 C 标准定义的标准 C 库中。

于 2013-03-12T07:08:28.640 回答
2

您必须在文件中间添加信息而不覆盖旧数据的唯一选择是手动移动要添加到文件中的位置之后的所有数据。

于 2013-03-12T06:57:29.770 回答
2

脚步:

  1. 创建临时文件
  2. 从源文件中读取每一行并写入临时文件,随时解析
  3. 然后在找到要插入新行的 ID 后插入新行
  4. 从源文件中写入所有剩余的行
  5. 删除源文件
  6. 将临时文件重命名为源文件的名称。
  7. 庆祝!
于 2013-03-12T06:59:43.377 回答