gpt4 book ai didi

c - 打印结构的 int 成员变量给出了错误的值

转载 作者:太空宇宙 更新时间:2023-11-04 00:36:40 24 4
gpt4 key购买 nike

我有一个函数可以读取数据并将其存储在 header 中声明的结构中,该函数可以正常读取字符串,但尝试读取数字 (int) 会返回一个随机数值。

这是导致问题的代码。 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 值不会。

最佳答案

这个

printf("-%d", &food[i].calories)

打印food[i].calories 的内存地址。如果你想要值(value),你应该简单地做

printf("-%d", food[i].calories)

关于c - 打印结构的 int 成员变量给出了错误的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30804208/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com