我正在开发游戏,我想从我的对象的硬编码位置过渡到从文本文件中读取它们。但是,我似乎得到了一个未处理的异常,使用此版本的代码。当我试图在这个函数中声明FILE时,我也遇到了一个问题,它说readData正在使用但没有初始化。我真的很感激帮助弄清楚我搞砸了哪里。感谢
void loadPlatform(gameState *gState) { // Platform load function
fopen_s(gState->readData, "PlatformsLevel1.txt", "r");
int tempPos;
int i = 0;
while (fscanf_s(gState->readData, "%d", &tempPos) > 0) {
gState->posArray00[i] = tempPos;
i++;
}
fclose(gState->readData);
答案 0 :(得分:0)
简短回答:您在调用fopen_s时错过了&
。
fopen_s(&gState->readData, "PlatformsLevel1.txt", "r");
fopen_s
的原型是
errno_t fopen_s(
FILE** pFile,
const char *filename,
const char *mode
);
fscanf_s
的原型是
int fscanf_s(
FILE *stream,
const char *format [,
argument ]...
);
如果gState->readData
类型为FILE*
,并且要使此代码有效,那么您需要将&gState->readData
传递给fopen_s
。