gpt4 book ai didi

c - 从文件中读取姓名和号码并修改

转载 作者:太空宇宙 更新时间:2023-11-04 07:04:26 26 4
gpt4 key购买 nike

我有一个文本文件,其中包含一些玩家的统计数据,其格式应为:

name(can be multiple spaces/names) score

例如:

John Andrew Brown 234
Mike Smith 13

我需要一个函数,它接收一个带有人名的字符数组作为参数,并在文件中找到那个人并将其分数加 1。因此,如果函数接收到“Mike Smith”,文件将被修改为:

John Andrew Brown 234
Mike Smith 14

我不知道名字和号码分别怎么读。如果我使用 fgets 读取,整行将被读取,我将需要倒回或使用 fseek 和 ftell 转到行的开头。有没有办法直接跳到数字上修改呢?

最佳答案

首先关于修改具有可变长度记录的文本文件(就像您所做的那样),有两种“标准”或“正常”的方法:

  1. 您可以通过一种或另一种方式将整个文件加载到内存中(例如加载到结构列表中)并修改内存中的副本,然后用内存中的(现在已修改的)覆盖整个文件数据。

  2. 由于文件中的每条记录都是一行,您可以一次读取一行,并将其写出到一个新的临时文件中,如果您读取记录 (或记录)您要修改 在将修改写出到临时文件之前进行修改。完成后关闭原始文件并将临时文件重命名为原始文件。


至于如何分别提取姓名和号码,有几种方法可以做到这一点。一种可能性是使用 fscanf (or sscanf)使用 "%[" 格式,但很难做到正确。

另一种方法是读取整行,修剪掉尾随的空白,然后查找最后 空格,并在该位置将该行拆分为两个子字符串。第一个是名称,第二个是编号。

关于c - 从文件中读取姓名和号码并修改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34392991/

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