Я пытался прочитать файл и поместить каждый отдельный символ в 2-мерную векторную матрицу (vector<vector<char>>
), но когда я использую getline()
, строка содержит не только символ, но также некоторое число и когда япопробуйте получить доступ к значениям строки, например, line[1]
, я получаю что-то вроде 49 '1'. Но все, что мне нужно, это «1», и я не знаю, что такое 49 и как от него избавиться.
matrix
- это предопределенный тип vector<vector<char>>
matrix mapMatrix;
ifstream map(pathToMap);
if (!map.is_open()) {
throw runtime_error("file not found");
}
string line;
vector<char> lineVec;
while (getline(map, line)) {
for (int i = 0; i < (signed)line.size(); i++) {
lineVec.push_back((char)line[i]);
}
mapMatrix.push_back(lineVec);
lineVec.clear();
}
return mapMatrix;
Файл .txt выглядит примерно так:
10
10
MMMMMMMMMM
M6... pM
MMMM.. MMM
MMM... xMM
M..... xxM
M....ggxxM
M MMMMMMMM
M.M..... M
M...OO..PM
MMMMMMMMMM
А в цикле while первая строка выглядит примерно так:
[size]: 2
[capacity]: 15
[allocator]: allocator
[0]: 49 '1'
[1]: 48 '0'
[Rohdatenansicht]: {_Mypair=allocator }
, и я не знаю, где 49 и48 приходят из.
Заранее спасибо