我目前正在尝试用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语言设计一个程序,该程序从文本文件中获取玩家的姓名和得分。名称数组和分数数组都是二维的,以帮助使显示高分数更加容易...
您无休止地尝试协调多个数组之间的不同数据类型,从而将名称同步到按数组索引的分数。尽管这对于2值是可行的,但它会突然失控,变得难以管理。相反,每当需要将不同类型的多个值作为C中的单个对象进行协调时,都应该考虑struct
。