保存/加载C ++数据的错误

时间:2017-01-25 03:47:32

标签: c++ save loading

所以我在这里用C ++开发这个小资源收集游戏。与游戏相关的一切(即开发的)都可以完美运行......但是,保存和加载进度似乎对我来说非常重要。

我使用了一些不同的方法,在放弃一些自定义的东西(命名你的保存文件)后,我得到了保存。但是现在,当加载时,它似乎使'wood'变量有很多,而石头,名称等等都被忽略了。

代码:

  • 保存

    ofstream saveFile;
    saveFile.open("save.save");
    saveFile << wood << stone << iron << gold << hasHatchet << hasPickaxe << hasDrill << hasPlasma_Cutter << hatchetLevel << pickaxeLevel << drillLevel << pcutterLevel << name;
    saveFile.close();
    
  • 装载

    ifstream loadFile;
    loadFile.open("save.save");
    loadFile >> wood >> stone >> iron >> gold >> hasHatchet >> hasPickaxe >> hasDrill >> hasPlasma_Cutter >> hatchetLevel >> pickaxeLevel >> drillLevel >> pcutterLevel >> name;
    loadFile.close();
    goto mainProg;
    
  • 变量(供参考)

    int wood = 0;
    int stone = 0;
    int iron = 0;
    int gold = 0; // Resource variables
    bool hasHatchet = true;
    bool hasPickaxe = false;
    bool hasDrill = false;
    bool hasPlasma_Cutter = false; // Tool boolean values
    int hatchetLevel = 1;
    int pickaxeLevel = 0;
    int drillLevel = 0;
    int pcutterLevel = 0; // Tool level variables
    string name = "";
    

1 个答案:

答案 0 :(得分:0)

这是因为你保存那些没有空格的变量,所以save.save将包含字符串000010001000。加载时,程序会将这些字符串识别为木材,这使得木材变量具有那么大的数字

在保存时尝试用空格分隔变量

saveFile << wood << " " << stone << " " << iron << " " <<gold;