[英]I'm getting garbage values when reading a simple .txt
我正在制作一个游戏,希望从.txt文件中读取怪物的属性。 当我读取文件并将值放入变量时,这些变量将获得垃圾数据,而不是.txt数据。 这很奇怪,因为它仅在我的主要项目中发生。 我用相同的类创建了一个测试项目,并按字面意思复制了代码,并且在这里可以完美地工作。
这是我的文件读取方法:
void Game::readMonsters() {
string monsterName, monsterFile = "";
int life, def, id = NULL;
ifstream monsters("assets/monsters.txt");
if (monsters) {
monsters >> nMonsterTypes; // this variable exists in Game.h
type = new MonsterType[nMonsterTypes](); // this object exists in Game.h
for (int i = 0; i < nMonsterTypes; i++) {
// all those variables are being set as memory garbage:
monsters >> id;
type[i].setID(id);
monsters >> life;
type[i].setHP(life);
monsters >> def;
type[i].setDefense(def);
monsters >> monsterFile;
type[i].setFile(monsterFile);
monsters >> monsterName;
type[i].setName(monsterName);
}
}
monsters.close();
}
感谢您的帮助!
在Visual Studio中使用断点时,我注意到错误不在读取中,而是在“类型”数组的get方法中。 当我应该在0和nMonsterTypes-1(选择数组中的随机位置)之间进行时,我在0和nMonsterTypes之间进行了兰德运算。 不过在这里有好的建议,谢谢大家!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.