问题是,我试图读取一些整数,以了解我已经通过的游戏级别,然后如果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);
}
}
MyArray
的所有元素都已初始化为0
。
通过使用,
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]);
你本质上是在呼叫
fscanf(pFile, "%d %d %d %d %d %d %d %d" , NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
将该行更改为:
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]);