作者:马志峰
链接:https://zhuanlan.zhihu.com/p/24197748
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
链接:https://zhuanlan.zhihu.com/p/24197748
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
声明:
- 文中内容收集整理自《C++ Primer 中文版 (第5版)》,版权归原书所有。
- 原书有更加详细、精彩的释义,请大家购买正版书籍进行学习。
- 本文仅作学习交流使用,禁止任何形式的转载
正文
sstream头文件,内存IO
- istringstream
- ostringstream
- stringstream
特有的操作:
- stream strm;
- stream strm(s);
- strm.str();
- strm.str(s);
实际比较常用的是>>操作
string sLine = "lee 80";
istringstream isRecord(sLine);
string sName, sScore;
isRecord >> sName;
isRecord >> sScore;
分别将lee和80赋值给sName和sScore
可以和cin一样理解
string sName, sScore;
cin >> sName >> sScore;
命令行上输入: lee空格80
ostringstream
可以把想要输出的内容存起来,一次性输出
ostringstream osBadNums;
for( const auto &nums : phones )
{
osBadNums << " " << nums;
}
cout << osBadNums.str() << endl;
小结
大家可以尝试在本节两个例子的基础上,结合8.2的文件IO,写一个处理通讯录的程序。
比如把自己的通讯录从手机里导出来(借助助手软件),查一查有没有重复的号码,有没有同一个人存了好几条记录等等。