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