繁体   English   中英

阅读简单的.txt时出现垃圾值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM