从文件C读取时发生状态访问冲突



问题是,我试图读取一些整数,以了解我已经通过的游戏级别,然后如果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]);

相关内容

  • 没有找到相关文章

最新更新