【发布时间】:2014-04-12 01:32:51
【问题描述】:
问题是我试图读取一些整数以了解我已经通过的游戏关卡,然后如果 t 还没有,我想将当前关卡的整数设置为 1。它创建文件但不写任何东西。有谁知道为什么?现在,它在第一次使用 printf 创建它时执行此操作,但在读取它时会出现状态访问冲突。
void SaveGame(void)
{
FILE *pFile = fopen("SavedData.txt","rb");
int MyArray[8] = {0};
if(pFile)
{
fscanf(pFile, "%d %d %d %d %d %d %d %d" , MyArray[0], MyArray[1], MyArray[2], MyArray[3], MyArray[4], MyArray[5], MyArray[6], MyArray[7]);
fclose(pFile);
}
if(MyArray[Current] == 0)
MyArray[Current] = 1;
pFile = fopen("SavedData.txt", "wb");
if(pFile)
{
fprintf(pFile, "%d %d %d %d %d %d %d %d" , MyArray[0], MyArray[1], MyArray[2], MyArray[3], MyArray[4], MyArray[5], MyArray[6], MyArray[7]);
fclose(pFile);
}
}
【问题讨论】:
-
if(MyArray[Current] = 0)你需要使用==。 -
您需要将文件句柄传递给
feof...feof(pFile); -
你的写循环是无限的。即,由您决定文件的结束位置。
-
while (!feof(pFile))在读取循环中可能比while (!feof)差 -
现在,它是第一次使用 printf 创建它但读取它时会出现状态访问冲突??