Я пытаюсь выполнить какой-либо ввод файла для чтения в аспектах комнат переменных, которые затем будут преобразованы в объекты (комната - это объект, а проходы север, восток, юг и запад - объекты).
Файл, из которого я читаю, выглядит следующим образом:
2 3
The Start,-,+,red_key,-,axe blue_key
The Landing,-,+,-,+,
Master Bedroom,-,-,-,+,red_key
The Kitchen,red_key,+,-,-,
The Hall,-,+,-,+,
The Exit!,-,+,-,+,
Комнаты будут помещены в двумерный массив. Я правильно прочитал количество строк и столбцов в файле, но к концу каждой строки для комнат все становится ужасно. Вот что я пытался сделать:
char discard = ',';
string roomName;
string nPassage;
string ePassage;
string sPassage;
string wPassage;
char lastChar;
string listOfItems;
for(int i = 0; i < this->rows; i++)
{
roomName.clear();
listOfItems.clear();
for(int j = 0; j < this->columns; j++)
{
getline(cinMaze, roomName, discard); cout << roomName << endl;
getline(cinMaze, nPassage, discard); cout << nPassage << endl;
getline(cinMaze, ePassage, discard); cout << ePassage << endl;
getline(cinMaze, sPassage, discard); cout << sPassage << endl;
getline(cinMaze, wPassage, discard); cout << wPassage << endl;
cinMaze >> lastChar; cout << "\"" << lastChar << "\"";
room roomInMaze(roomName, createPassageWay(nPassage), createPassageWay(ePassage), createPassageWay(sPassage), createPassageWay(wPassage));
theMaze[i][j] = roomInMaze;
if (lastChar != '\n')
{
cinMaze.putback(lastChar);
getline(cinMaze, listOfItems);
theMaze[i][j].addItem(listOfItems);
}
}
}
Слова после последней запятой в некоторых строках файла - это предметы, необходимые для дверей, которые игрок будет добывать, когда входит в комнату. Я думал, что последняя запятая была удалена из-за того, как я написал программу, и тогда я смогу проверить наличие \ n и либо перейти, либо убрать обратно любой символ, чтобы я мог прочитать список необходимых элементов.
Все операторы cout существуют для целей тестирования ... Вот что я получаю, когда тестирую это:
The Start
-
+
red_key
-
"a"The Landing
-
+
-
+
"M"The Kitchen
red_key
+
-
-
"T"The Exit!
-
+
-
+
"T"The Exit!
-
+
-
+
"T"The Exit!
-
+
-
+
Что я не понимаю в отношении файлового ввода-вывода или чего-то еще?