在我的主要功能中,我扫描文件的信息并将所有信息放入全局结构中。但是,每当我转到另一个函数并声明我的结构时,我放入其中的所有信息都会消失。我想知道如何使我放入结构中的所有值在每个函数中保持不变。 结构:
struct joueursstruct
{
int numero;
char equipe[4];
char prenom[50];
char nom[50];
int buts;
int assist;
int penal;
int points;
}joueurs2[50];
扫描文件的主要部分
for(indice1 = 0;indice1 < 50;indice1++)
{
fscanf(fptr,"%d",&joueurs2[indice1].numero);
fscanf(fptr,"%c",&buffer);
fscanf(fptr,"%[^ ]s",&joueurs2[indice1].equipe);
fscanf(fptr,"%c",&buffer);
fscanf(fptr,"%[^ ]s",&joueurs2[indice1].prenom);
fscanf(fptr,"%c",&buffer);
fscanf(fptr,"%[^ ]s",&joueurs2[indice1].nom);
fscanf(fptr,"%d",&joueurs2[indice1].buts);
fscanf(fptr,"%c",&buffer);
fscanf(fptr,"%d",&joueurs2[indice1].assist);
fscanf(fptr,"%c",&buffer);
fscanf(fptr,"%d",&joueurs2[indice1].penal);
joueurs2[indice1].points = joueurs2[indice1].buts +
joueurs2[indice1].assist;
}
应该在屏幕上打印玩家姓名和目标的其他功能的一部分:
{
printf("%d\t %s\t %s\t %s %d\t %d\t %d\t %d\n",
joueurs2[indice1].numero,joueurs2[indice1].equipe,joueurs2[indice1].prenom
,joueurs2[indice1].nom,joueurs2[indice1].buts,joueurs2[indice1].assist,
joueurs2[indice1].penal,joueurs2[indice1].points);
}
但它所做的只是打印0。
答案 0 :(得分:0)
您是否在函数中声明了一个同名的变量?然后它创建一个本地对象,其名称将影响全局对象。从函数中删除该声明并查看效果。如果您的编译器然后抱怨未定义的标识符,那么在函数之前放置该全局变量声明。