Я получаю значения мусора при чтении простого .txt - PullRequest
0 голосов
/ 24 апреля 2018

Я делаю игру, в которой я хочу прочитать из .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();

}

Я ценю любую помощь!

1 Ответ

0 голосов
/ 24 апреля 2018

Используя точку останова в Visual Studio, я заметил, что ошибка не в чтении, а в методе get массива "type". Я делал рэнд между 0 и nMonsterTypes, когда я должен был делать между 0 и nMonsterTypes - 1 (чтобы выбрать случайную позицию в массиве). Здесь есть хорошие советы, спасибо всем!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...