чтение символов из ввода, включая пробелы, используя get ()

0

Вот моя проблема.

Я задал размер 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);
} 

Однако, у меня что-то не так, я не знаю, почему. Кто-нибудь может мне помочь? Заранее спасибо.

  • 0
    Кажется, этот код действительно хочет прочитать 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())); }
Теги:
file-io

1 ответ

4

Вы забыли учесть терминатор новой строки. Когда вы читаете первые 8 символов, следующий (или два, если используется ОС Windows) будет разделителем строк. Вам нужно будет справиться с этим.

Более надежный подход, чем чтение отдельных символов, заключается в использовании std::getline.

  • 0
    +1 И он не делает ничего, чтобы row .
  • 0
    Хороший споттинг. Интересно, это просто опечатка в записи вопроса или второстепенная проблема?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню