读取一个结构的连续数组元素,并立即打印它,直到它到达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. 在打开文件并赋值给fp之前,不能使用feof(fp) 。这是未定义的行为。
  2. 你不应该在打开读取时使用"a+"模式,这意味着"带追加读取",这不是你想要的。
  3. 你不应该像那样使用feof():它的目的不是弄清楚什么时候停止阅读,而是弄清楚为什么阅读失败。
  4. 当参数是字符串时不需要&

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

相关内容

  • 没有找到相关文章

最新更新