gpt4 book ai didi

c - 读取结构的连续数组元素并立即打印它直到它到达 c 中的文件末尾

转载 作者:太空宇宙 更新时间:2023-11-04 06:29:13 25 4
gpt4 key购买 nike

我正在为我们的项目使用 C 编程制作一个简单的游戏。球员的信息(球员号码如1、2或3、球员姓名、得分)通过结构体存储在一个文本文件中。我想在游戏开始前“加载”之前玩家的信息,以便当前玩家通过从文件中获取玩家编号并立即打印出来来知道他/她的玩家编号是多少。我正在使用 while(!feof(fp)) 但我遇到了麻烦,因为它只打印第一个玩家号码。请帮助我。

while(!feof(fp)) {
fp = fopen("scores.txt","a+");
fscanf(fp, "%i \n", &p[load].nth);
printf ("Loading player no. %i...\n", p[load].nth);
fscanf(fp, "%s \n", p[load].name);
fscanf(fp, "%i \n", &p[load].score);
load++;
}

count=load;
p[count].nth=count;
printf("You are player no. %i", p[count].nth);

最佳答案

您的代码有一些错误。

  1. 您不能使用 feof(fp) 打开文件并将值分配给 fp。这是未定义的行为。
  2. 打开阅读时不应该使用"a+" 模式,这意味着"read with append",这不是您想要的。
  3. 你不应该像那样使用 feof():它的目的不是找出何时停止阅读,而是为了找出阅读失败的原因。
  4. 当参数是字符串时,您不需要&

您处理 count 的方式似乎也可能存在一些逐一索引问题。

关于c - 读取结构的连续数组元素并立即打印它直到它到达 c 中的文件末尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22603904/

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