Строка c ++ getline () имеет дополнительные странные числа, а не просто символы в качестве записей - PullRequest
0 голосов
/ 30 октября 2019

Я пытался прочитать файл и поместить каждый отдельный символ в 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 приходят из.

Заранее спасибо

...