Вот моя проблема.
Я задал размер 2 dim array. Каждая строка содержит пробелы и "!". Позвольте мне показать это.
row size:3 column size:8
! !!!! !
!!!!!!!!
!! !! !
Я попытался прочитать его и сохранить в векторном <vector <char>>. Для этого я написал следующий код.
vector<vector<char> > rows;
for(int i=0;i<3;i++){
vector<char> row;
for(int j=0;j<8;j++){
tempChar=myfile.get();
temp.push_back(tempChar);
}
rows.push_back(row);
}
Однако, у меня что-то не так, я не знаю, почему. Кто-нибудь может мне помочь? Заранее спасибо.
Вы забыли учесть терминатор новой строки. Когда вы читаете первые 8 символов, следующий (или два, если используется ОС Windows) будет разделителем строк. Вам нужно будет справиться с этим.
Более надежный подход, чем чтение отдельных символов, заключается в использовании std::getline
.
row
.
std::vector<std::vector<char> > rows; std::string line; for (int i = 0; i != 3 && std::getline(myfile, line); ++i) { rows.push_back(std::vector<char>(line.begin(), line.end())); }