【发布时间】:2020-04-25 05:23:18
【问题描述】:
我在将结构指针传递给带有fscanf() 的函数时遇到问题。
这是我的结构:
typedef struct {
int health;
int y;
int z;
} save;
在main我有:
save save = { 0 }; //init with zeros
loadgame(&save);
health = save.health;
我的函数loadgame() 看起来像这样:
bool loadgame(save* save) {
FILE* fptr;
fptr = fopen("savegame.txt", "r");
if (fptr == NULL)
return 0;
fscanf(fptr, "health= %d", save->health);
return 1;
};
我的savegame.txt 文件有一行:
health= 5
我的功能不会改变save->health,在这个功能完成后我的健康为零。
我尝试这样做我的功能,它在功能loadgame()中也有相同的解决方案我改变了
fscanf(fptr, "health= %d", save-health);
到
fscanf(fptr, "health= %d", &(save-health));
【问题讨论】:
-
我也尝试传递一个正常的结构(保存保存)和加载游戏(保存),它也不起作用,关键是我试图改变我的结构的值功能
-
//抱歉线程名错误,刚刚改了
标签: c pointers scanf structure