У меня есть функция, которая считывает данные и сохраняет их внутри структуры, объявленной в заголовке, функция читает строку в порядке, но попытка прочитать число (int
) возвращает случайное числовое значение.Печать переменной типа int из struct дает неправильное значение
Это код, который вызывает проблемы. Структура внутри functions.h
.
struct stats{
char name[50];
int calories;
}temp_list[50],activities[50],food[50];
и фактическая функция
#include <stdio.h>
#include "functions.h"
void scandata(FILE *file1,FILE *file2,int size,int size2){
int i;
file1=fopen("in_activities.txt", "r");
file2=fopen("in_food.txt","r");
for(i=0;i<size;i++){
fscanf(file1,"%s",&activities[i].name);
fscanf(file1,"%d",&activities[i].calories);
}
for(i=0;i<size2;i++){
fscanf(file2,"%s" "%d",&food[i].name,&food[i].calories);
}
for(i=0;i<size2;i++){ //test print to see the values
printf("%s ",&food[i].name);
printf("-%d",&food[i].calories);
}
fclose(file1);
fclose(file2);
return;
}
если напечатать строку он отображается правильно, но значение int
не делает.
'Не можете называть int' --- a Вы уверены, что хотите написать это? –
Малый: Рекомендовать 'fscanf (file1,"% 49s ", действия [i] .name);' (wdith и no &) – chux