Saving/Loading C++ 数据错误
Errors with Saving/Loading C++ Data
所以我在这里用 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 = "";
因为你保存的那些变量没有spaces,所以save.save会包含字符串000010001000
。加载时,程序会将这些字符串识别为木头,这使得木头变量具有那些大数字
尝试在保存时用 space 分隔变量
saveFile << wood << " " << stone << " " << iron << " " <<gold;
所以我在这里用 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 = "";
因为你保存的那些变量没有spaces,所以save.save会包含字符串000010001000
。加载时,程序会将这些字符串识别为木头,这使得木头变量具有那些大数字
尝试在保存时用 space 分隔变量
saveFile << wood << " " << stone << " " << iron << " " <<gold;