使用 istreamstring 与文本行绑定之后读取元素。
struct PersonInfo
{
string name;
vector<string> phones;
};
int main(int argc, char const *argv[])
{
string line, word;
vector<PersonInfo> people;
istringstream record;
while (getline(cin, line))
{
PersonInfo info;
record.clear(); // 在将line拷贝到record中之前,应调用clear()函数来使流复位。保证下一次循环时,流record的正常使用。
record.str(line);
// istringstream record(line) 如果在循环内部,则不需要复位,因为每次循环都会zion个销毁和重新创建istringstream流对象 record!
record >> info.name;
while (record >> word)
info.phones.push_back(word);
people.push_back(info);
}
return 0;
}
时间: 2024-10-28 05:24:18