<分区>
我想存储属于某个数字的名称,并将所有这些存储在一个数组中。我正在读取一个如下所示的文件:
1 Alan Ed
2 Eric Sara Lisa Dave
3 Amanda
4 Trevor Juliet Brad
我基本上想要一个数组数组,我在索引 1、2、3、4 处存储一个名称数组。这是怎么做到的?我知道有几种方法,我正在寻找一种简单的方法。
<分区>
我想存储属于某个数字的名称,并将所有这些存储在一个数组中。我正在读取一个如下所示的文件:
1 Alan Ed
2 Eric Sara Lisa Dave
3 Amanda
4 Trevor Juliet Brad
我基本上想要一个数组数组,我在索引 1、2、3、4 处存储一个名称数组。这是怎么做到的?我知道有几种方法,我正在寻找一种简单的方法。
最佳答案
通过 std::getline()
解析输入成行字符串,通过 std::strinstream
解析每一行字符串的提取器到名称字符串中,使用 std::vector<std::string>::push_back()
将名称字符串附加到行条目中,通过另一个 std::vector<std::vector<std::string>>
收集行条目.
像这样,正负语法错误:
vector<vector<string>> result;
istream& is = cin;
while (!is.eof())
{
string ls;
getline(is, ls);
istringstream line_ss(ls);
result.emplace_back();
while (line_ss.good())
{
string name;
line_ss >> name;
result.back().push_back(name);
}
}
附言索引将为 0、1、2、3。如果您确实需要它们为 1,2,3,4,请改用 std::map。
关于c++ - 阅读未知数量的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20460234/