Двумерная векторная печать

У меня есть двумерный вектор строки, который мне нужно распечатать. Вся программа должна прочитать строку из текстового файла, сохранить каждое слово из него как отдельный элемент, а затем вставить «вектор слова» в вектор, содержащий, например, 100 строк. У меня все идет, но проблема возникает, когда мне нужно распечатать вектор. Каждая строка может иметь различное количество слов, например:

мне нравится торт

много.

Поэтому я не могу использовать:

for (int i = 0; i < 2; i++)
{
    for (int j = 0; j < 3; j++)
    {
        cout << vec[i][j];
    }
}

потому что вторая строка не содержит 3 элемента и программа закрывается.
Есть идеи как это сделать? Примечание: мой лектор не принимает C ++ 11, поэтому было бы полезно решение на основе C ++ 98. Это моя функция:

void readline(vector<vector<string> >& lines, int size)
{
    vector<string> row;
    string line, word;
    fstream file;
    istringstream iss;
    int i;

    file.open("ticvol1.txt", ios::in);
    for (i = 0; i < size; i++)
    {
        getline(file, line);
        iss.str(line);
        while (iss >> word) row.push_back(word);
        lines.push_back(row);
    }
}

Ответы на вопрос(4)

Ваш ответ на вопрос