Хранение одинаковых переменных в структуре в c - PullRequest
0 голосов
/ 16 мая 2018

В своей основной функции я сканирую информацию о файле и помещаю всю информацию в глобальную структуру.Однако всякий раз, когда я иду к другой функции и объявляю свою структуру, вся информация, которую я вложил в нее, исчезает.Я хотел бы знать, как сделать так, чтобы все значения, которые я ввел в свою структуру, оставались одинаковыми в каждой функции.Структура:

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);
}

Но все, что он делает, это печатает 0s.

1 Ответ

0 голосов
/ 16 мая 2018

Вы объявляете переменную с таким же именем в вашей функции?Затем он создает локальный объект, а его имя затеняет глобальный.Удалите эту декларацию из функции и посмотрите эффект.Если ваш компилятор жалуется на неопределенный идентификатор, поместите объявление глобальной переменной перед функцией.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...