簡體   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