string 流
来源:互联网 发布:魔兽世界教学软件 编辑:程序博客网 时间:2024/05/26 22:55
sstream头文件定义了三个类型来支持内存IO:
- istringstream 从string读数据
- ostringstream 向string写数据
- stringstream 读写皆可
sstream strm;//定义一个sstream头文件中类型的对象,未绑定sstream strm(s);//绑定strm.str();//返回strm所保存的string的拷贝strm.str(s);//将string s拷贝到strm中,返回void
istringstream
对整行文本进行处理,再处理行内的单个单词可以用istringstream.
struct PersonInfo{ string name; vector<string> phones;};string line, word;//分别保存来自输入的一行和单词vector<PersonInfo> people;//保存输入的所有记录while (getline(in, line)) { PersonInfo info; record.clear();//重复使用字符串流时,每次都要调用clear record.str(line);//将记录绑定到刚读入的行 record >> info.name;//读取名字 while (record >> word)//读取电话 info.phones.push_back(word); people.push_back(info); }
对于这样一个文件,它的每一行是一个人名和他的若干个电话:
soybean 123 254 789
soybean2 589 789 264 697
soybean3 189
上面的代码中用getline从标准输入读取整条记录,在while中定义了一个PersonInfo的对象用来保存当前的记录。然后将istringstream与刚读入的line进行绑定,这样就可以用输入运算符读取当前记录的每个元素。先读入名然后再用一个while循环读取电话号码。
ostringstream
逐步构造输出,最后一起打印时,ostringstream是很有用的。对于上面的电话号码簿的程序,如果想将其电话号码逐个验证并且格式化。由于不想输出无效的号码的人,所以对每个人知道验证完所有号码后再输出,此时可以先将输出内容写到一个内存ostringstream中:
for (const auto &entry : people)//对people中每一项 { ostringstream formatted, badNum;//每个循环步创建的对象 for (const auto &nums:entry.phones)//对每个数 if (!valid(nums)) { badNum << " " << nums;//将数的字符串形式输入到badNums } else {//将格式化的字符串写入formatted formatted << " " << format(nums); } if (badNum.str().empty())//没有错误的数字 os << entry.name << " " << formatted.str() << endl;//打印名字和格式化了的数 else cerr << "input error" << entry.name << "invalid number(s)" << badNum.str() << endl; //否则打印错误的名字和数 } cout << os.str() << endl;
0 0
- string流
- string 流
- string流
- string 流演示
- C++primer:string流
- C++ string流介绍
- C++ string流
- string流的用法
- 8.3 string流
- String 字符串 文件流
- string
- String
- String
- string
- string
- String
- string
- String
- tomcat7项目启动报错java.lang.NoClassDefFoundError: org/apache/juli/logging/LogFactory
- oracle 创建外部表实例及常用语句解释
- Bluetooth---初步了解Android 蓝牙4.0
- Worldwide Telephone support
- Java 传值和传引用
- string 流
- 学习
- easyui框架搭建
- ASCII码表全部
- 在Linux上安装ArcGIS许可管理器备忘录
- MyEclipse+phpEclipse+xampp的安装与配置,万里长征第一步!
- 转 top.location.href和localtion.href有什么不同
- Java 爬虫工具/开源API对比
- Java 关键字详解