SStream头文件的使用技巧
来源:互联网 发布:阿里云华东1和华东2 编辑:程序博客网 时间:2024/05/22 03:47
C++的输入输出分为三种:
(1)基于控制台的I/O
(2)基于文件的I/O
(3)基于字符串的I/O
1、头文件
[cpp] view plaincopyprint?
- #include <sstream>
2、作用
istringstream类用于执行C++风格的字符串流的输入操作。
ostringstream类用于执行C++风格的字符串流的输出操作。
strstream类同时可以支持C++风格的串流的输入输出操作。
3、具体分析
istringstream类
描述:从流中提取数据,支持 >> 操作
这里字符串可以包括多个单词,单词之间使用空格分开
- istringstream的构造函数原形:
- istringstream::istringstream(string str);
初始化:使用字符串进行初始化
- istringstream istr("1 56.7");
- istr.str("1 56.7");//把字符串"1 56.7"存入字符串流中
使用:我们可以使用分解点获取不同的数据,完成 字符串 到 其他类型 的转换
常用成员函数:
- str():使istringstream对象返回一个string字符串
举例:把字符串类型的数据转换为其他类型
- #include <iostream>
- #include <sstream>
- using namespace std;
- int main()
- {
- istringstream istr("1 56.7");
- cout<<istr.str()<<endl;//直接输出字符串的数据 "1 56.7"
- string str = istr.str();//函数str()返回一个字符串
- cout<<str<<endl;
- int n;
- double d;
- //以空格为界,把istringstream中数据取出,应进行类型转换
- istr>>n;//第一个数为整型数据,输出1
- istr>>d;//第二个数位浮点数,输出56.7
- //假设换下存储类型
- istr>>d;//istringstream第一个数要自动变成浮点型,输出仍为1
- istr>>n;//istringstream第二个数要自动变成整型,有数字的阶段,输出为56
- //测试输出
- cout<<d<<endl;
- cout<<n<<endl;
- system("pause");
- return 1;
- }
举例2:把一行字符串放入流中,单词以空格隔开。之后把一个个单词从流中依次读取到字符串
- #include <iostream>
- #include <sstream>
- using namespace std;
- int main()
- {
- istringstream istr;
- string line,str;
- while (getline(cin,line))//从终端接收一行字符串,并放入字符串line中
- {
- istr.str(line);//把line中的字符串存入字符串流中
- while(istr >> str)//每次读取一个单词(以空格为界),存入str中
- {
- cout<<str<<endl;
- }
- }
- system("pause");
- return 1;
- }
输入:123 34 45
输出:
123
34
45
ostringstream类
描述:把其他类型的数据写入流(往流中写入数据),支持<<操作
- ostringstream的构造函数原形:
- ostringstream::ostringstream(string str);
初始化:使用字符串进行初始化
- ostringstream ostr("1234");
- ostr.str("1234");//把字符串"1234"存入字符串流中
举例:
- #include <iostream>
- #include <sstream>
- using namespace std;
- int main()
- {
- //初始化输出字符串流ostr
- ostringstream ostr("1234");
- cout<<ostr.str()<<endl;//输出1234
- ostr.put('5');//字符4顶替了1的位置
- cout<<ostr.str()<<endl;//输出5234
- ostr<<"67";//字符串67替代了23的位置,输出5674
- string str = ostr.str();
- cout<<str<<endl;
- system("pause");
- return 1;
- }
华为的笔试题可以这样做:
int lenOfLastWord(const string &s)
{if(s == "") return 0;
istringstream is(s); //调用构造函数
string last;
while(is >> last)
{
cout<<last.size()<<endl;
cout<<last<<endl; //循环从is 字符串流中读取每一个字符串,并存储到last变量中。
//因此每次会覆盖上次的字符串,所以这样循环结束后可以得到最后一个字符串的长度。
return last.size();}
0 0
- SStream头文件的使用技巧
- zz头文件sstream,strstream的区别
- C++:<sstream>头文件的应用
- C++ <sstream>头文件的应用
- 关于sstream头文件
- 浅谈sstream头文件
- 【C++】使用sstream头文件进行格式转换
- isstreamstream 头文件#include <sstream>
- string 流(sstream头文件下属的三个类型)
- sstream的一些技巧
- 文件流fstream和字符串流sstream的使用
- C/C++笔试必须熟悉掌握的头文件系列(六)——sstream
- sstream 与 fstream的使用
- sscanf和sstream的使用
- C++/C++11中头文件<sstream>介绍
- 头文件的使用
- 头文件的使用..
- 头文件的使用
- PLSQL之触发器
- 【bzoj1391】【Ceoi2008】【Order】【最小割】
- LeetCode Algorithms #107 <Binary Tree Level Order Traversal II>
- PLSQL之循环和游标
- RxJava初级解析(一)
- SStream头文件的使用技巧
- Android Scroll详解(一):基础知识
- Numpy 初试
- PostgreSQL字符串处理
- 3使用Cordvoa操作项目
- 物联网MQTT协议分析和开源Mosquitto部署验证
- 求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。
- 一些网站分析工具
- 欢迎使用CSDN-markdown编辑器