C ++ fin.getline, ресурсы многомерного массива? - PullRequest
0 голосов
/ 04 февраля 2012

для моего класса CS .. не могу использовать векторы! Я искал повсюду некоторую информацию о том, как читать строки в строках из текста в двумерный или трехмерный массив, и я не могу найти НИЧЕГО. Мне нужна помощь, пожалуйста.

чтение в текстовом файле, который выглядит следующим образом:

  • Какая столица Техаса?
  • Остина
  • канзас
  • Harlingen
  • * 1014 DuPont *
  • blankline
  • blankline
  • Какая столица штата Мэн?
  • и т.д.

Итак, его блоки: 1 вопрос 4 ответа, две пустые строки, повторите.

мой массив для хранения 50 вопросов, каждый с 5 строками

string questions[50][5];

моя функция для чтения в текстовом файле в массив

void read_questions(string[], string[])
{
ifstream.fin;
fin.open("questions.txt")
while (!fin.eof{}}
fin.getline([i][j];
}

я знаю, что я далеко, но если бы вы могли указать мне некоторые ссылки, я был бы признателен. Я просмотрел много ресурсов и гуглил много раз, но не могу найти какие-либо примеры, близкие к моей. я спросил на другом сайте, но они продолжают говорить мне использовать векторы, но мы не можем использовать 2d или 3d массив

1 Ответ

0 голосов
/ 04 февраля 2012
string questions[50][5];

Эта строка объявляет массив из массива string с.Это достаточно хорошее начало.

Чтобы прочитать каждую строку, вам понадобится:

  • Функция, которая читает одну строку
  • Цикл для чтенияв пять строк и
  • цикл для чтения из пятидесяти наборов из пяти строк

Вложенные циклы просты:

for(int i = 0; i < 50; ++i)
  for(int j = 0; j < 5; ++j)
  {
    do some work here.
  }

Выбор функции вводадовольно легко тоже.Вы захотите использовать std::getline(std::istream&, std::string&).

...