首页 > 代码库 > isstream例子
isstream例子
假如有一个文件,列出了一些人和他们的电话号码。某些人只有一个号码,而另外一些人则有多个——家庭电话、工作电话、移动电话等。我们的输入文件看起来是这样的:
morgan 2015552368 8625550123
drew 9735550130
lee 6095550132 2015550175 8005550000
文件中每条记录都以一个人名开始,后面跟随一个或多个电话号码。
程序如下:
#include<iostream>#include<string>#include<vector>#include<sstream>using namespace std;struct PersonInfo{ string name; vector<string> phones;};int main(){ string line,word; vector<PersonInfo> people; while(getline(cin,line)) { PersonInfo info; istringstream record; record.str(line); record>>info.name; while (record>>word) info.phones.push_back(word); people.push_back(info); } for(auto v:people) { cout<<v.name<<endl; for(auto i:v.phones) cout<<i<<" "; cout<<endl; } return 0;}
运行结果如下:
如果将其中while循环中定义的istringstream对象移到循环的外面,则运行结果如下:
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。