使用fscanf填充2D数组时的语法

问题描述 投票:0回答:1

我目前正在尝试用C语言设计一个程序,该程序从文本文件中获取玩家的姓名和得分。名称数组和分数数组都是2D的,以帮助在以后的行中更轻松地显示高分数。现在我已经像这样设置了fscanf:

while(feof(file_p) == 0){

fscanf(file_p,"%s %d\n", name[r][c],score[r][c]);
r++;
}

如果我没记错的话,%s通常表示类似的东西>>

  fscanf(file_p,"%s %d\n", name,score);

我只是不知道如何控制使用这种格式将每个名称放入哪一行。

输入

John 10
Bob 20
Sue 90

预期输出

name[0][] = John    score[0][0] = 10
name[1][] = Bob     score[1][0] = 20
name[2][] = Sue     score[2][0] = 30

还有更多代码。我在使用临时1D数组和strcpy将其转换为2D数组时遇到了麻烦,但是我不熟悉字符串库,因此也无法解决。

   void displayHighScores(FILE*fp){
   char name[MAX][MAX]; 
   int i = 0,x = 0,score[MAX][MAX]; 
   char temp_name[MAX];
    int temp_score;
    // Gather scores from the Document
    fp = fopen(FILENAME, "r"); 
   while (feof(fp) == 0) {
    //gets info from Document and stores in temp variables
        fscanf(fp,"%s %d\n", temp_name,&temp_score); 
   i++; 
   }
   }

感谢您的帮助!

我目前正在尝试用C语言设计一个程序,该程序从文本文件中获取玩家的姓名和得分。名称数组和分数数组都是二维的,以帮助使显示高分数更加容易...

c multidimensional-array file-io c-strings
1个回答
0
投票

您无休止地尝试协调多个数组之间的不同数据类型,从而将名称同步到按数组索引的分数。尽管这对于2值是可行的,但它会突然失控,变得难以管理。相反,每当需要将不同类型的多个值作为C中的单个对象进行协调时,都应该考虑struct

© www.soinside.com 2019 - 2024. All rights reserved.