我有一个需要打印的二维字符串向量。整个程序应该从txt文件中读取一行,将其每个单词存储为不同的元素,然后将“单词向量”推入包含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);
}
}
lines.size()
给出了lines中向量的数量,lines[i].size()
给出了行中单词的数量。TADA。 - IdeaHat.size()
来打印它(或者一般地迭代它),这就是全部。而且,存储在向量中的元素种类并不重要。 - user2556165vector
编写operator<<
专门化并使用它。 - user2556165