stringstream函数

头文件  #include<sstream>

stringstream是字符串流,被用来切分数据或转化类型

样例一(摘)

输入n,代表接下来输入n行资料,每行资料有不固定个数的整数(最多20个,不大于200个字元)。输出每行的总数

输入:

3 1 2

3 20 17 23 54 77 60

111 222 333 444 555 666 777 888 999

输出:

6

代码

#include<iostream>
#include<string>
#include<sstream>
using namespace std;
int main()
{
string s;
stringstream ss;
int n, i, sum, a;
cin >> n;
getline(cin, s); //读取换行
for (i=; i<n; i++){
getline(cin, s);
ss.clear(); //清空
ss.str(s); //用str()将指定字串s设为开始的内容
sum=;
while ()
{
ss >> a;
if ( ss.fail() ) break;
sum+=a;
}
cout << sum << endl;
}
//system("pause");
return ;
}

样例二(摘)

基本数据类型转换例子 int转string

#include <string>
#include <sstream>
#include <iostream>
using namespace std;
int main()
{
stringstream ss;
string result;
int i = ;
ss << i; //将int输入流
ss >> result; //从stream中抽取前面插入的int值
cout << result << endl; // print the string "1000"
//system("pause");
return ;
}

样例三(摘)

int转换为char *

#include <sstream>
#include <iostream>
using namespace std;
int main()
{
stringstream ss;
char result[] ;
ss << ; //向stream中插入8888
ss>> result; //抽取stream中的值到result
cout << result <<endl; // 屏幕显示 "8888"
//system("pause");
return ;
}

样例四(摘)

多次转换时必须调用成员函数clear()

#include <sstream>
#include <iostream>
using namespace std;
int main()
{
stringstream ss;
int first, second;
ss<< ""; //插入字符串
ss >> first; //转换成int
cout << first <<endl;
ss.clear(); //在进行多次转换前,必须清除stream
ss<< false; //插入bool值
ss>> second; //提取出int
cout << second <<endl;
//system("pause");
return ;
}

istringstream

预测分析算法是一些入栈出栈操作,问题是当产生是匹配时,要把该产生式的体反向入栈,但是这些文法符号是string类型而不能是char的,该怎样入栈呢,网上找了好多,发现了这个类istringstream,头文件要包含ssream,简单用法如下:

#include<iostream>
#include<sstream>
#include<string>
using namespace std;
int main()
{
string str="i an a boy";
istringstream is(str);
string s;
while(is>>s)
{
cout<<s<<endl;
}
//system("pause");
return ;
}

istringstream对象可以绑定一行字符串,然后以空格为分隔符把该行分隔开来。

#include<iostream>
#include<sstream>
using namespace std;
int main()
{
string str, line;
while(getline(cin, line))
{
istringstream stream(line);
while(stream>>str)
cout<<str.c_str()<<endl;
}
//system("pause");
return ;
}

Sample input

a ddjfksj        jkdsnfsfn  nd

a

Sample output

ddjfksj

jkdsnfsfn

nd

总结

•   istringstream,由 istream 派生而来,提供读 string 的功能。 输入操作
•   ostringstream,由 ostream 派生而来,提供写 string 的功能。 输出操作
•   stringstream,由 iostream 派生而来,提供读写 string 的功能。输入输出操作

istringstream的构造函数原形: istringstream::istringstream(string str);

stringstream  特定的操作 

stringstream strm; // 创建自由的 stringstream 对象
stringstream strm(s); //创建存储 s 的副本的 stringstream 对象,其中 s 是 string 类型的对象
strm.str() //返回 strm 中存储的 string 类型对象
strm.str(s) //将 string 类型的 s 复制给 strm,返回 void

stringstream  提供的转换和/或格式化
stringstream 对象的一个常见用法是,需要在多种数据类型之间实现自动格式化时使用该类类型。

例如,有一个数值型数据集合,要获取它们的 string 表示形式,或反之。sstream 输入和输出操作可自动地把算术类型转化为相应的 string 表示形式,反过来也可以。

stringstream函数(i o)的更多相关文章

  1. sstream头文件-getline 函数 和 stringstream函数 和string的常见用法

    2017-08-12 19:50:50 writer:pprp getline函数可以读入一行的字符,不论有没有空格 第一个参数,流 第二个参数 ,将流读入的地方 第三个参数,当读到某个字符的时候停止 ...

  2. C++ string的用法和例子

    使用场合: string是C++标准库的一个重要的部分,主要用于字符串处理.可以使用输入输出流方式直接进行操作,也可以通过文件等手段进行操作.同时C++的算法库对string也有着很好的支持,而且st ...

  3. string使用方法

    转载自:https://blog.csdn.net/tengfei461807914/article/details/52203202 使用场合: string是C++标准库的一个重要的部分,主要用于 ...

  4. [UE4]C++ string的用法和例子

    使用场合: string是C++标准库的一个重要的部分,主要用于字符串处理.可以使用输入输出流方式直接进行操作,也可以通过文件等手段进行操作.同时C++的算法库对string也有着很好的支持,而且st ...

  5. 算法竞赛入门经典5.1 从c到c++

    这个章节主要是讲述了一些c++的特性,在这里面,对我用处最大的应该就是字符串吧.首先是getline,getchar,stringstream的使用了吧. 首先介绍这三个函数. 1. getline函 ...

  6. 洛谷 P1980【计数问题】 题解(2)

    还有一种办法,就是用stringstream函数将每一次的数全都转化成char一维数组样式的字符串,然后逐位扫一遍即可. (记得判断字符时将规定数字+48) //Stand up for the fa ...

  7. 2017蓝桥杯购物单(C++B组)

    原题: 标题: 购物单 小明刚刚找到工作,老板人很好,只是老板夫人很爱购物.老板忙的时候经常让小明帮忙到商场代为购物.小明很厌烦,但又不好推辞.这不,XX大促销又来了!老板夫人开出了长长的购物单,都是 ...

  8. istringstream、ostringstream、stringstream 类介绍 和 stringstream类 clear函数的真正用途

    istringstream.ostringstream.stringstream 类介绍 和 stringstream类 clear函数的真正用途 来源: http://blog.csdn.net/T ...

  9. c++ stringstream(老好用了)

    前言: 以前没有接触过stringstream这个类的时候,常用的字符串和数字转换函数就是sscanf和sprintf函数.开始的时候就觉得这两个函数应经很叼了,但是毕竟是属于c的.c++中引入了流的 ...

随机推荐

  1. 怎样给win7系统硬盘分区

    怎样给win7系统硬盘分区 步骤 一.鼠标右击“计算机” 二.选择“管理”标签 三.打开“计算机管理”窗口 四.选择“磁盘“>>”存储管理“,打开”磁盘管理“页面 如图: 五.右键单击选择 ...

  2. parentViewController

    获取创建自己的上一级视图 self.parentViewController 并且强制转换

  3. (原)error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”

    转载请注明出处: http://www.cnblogs.com/darkknightzh/p/5577534.html 在debug下使用intel的mkl库时(release下无此问题),莫名的出现 ...

  4. android 开发环境搭建 (转)

    最近由于工作中要负责开发一款Android的App,之前都是做JavaWeb的开发,Android开发虽然有所了解,但是一直没有搭建开发环 境去学习,Android的更新速度比较快了,Android1 ...

  5. Lucene学习总结之二:Lucene的总体架构

    Lucene总的来说是: 一个高效的,可扩展的,全文检索库. 全部用Java实现,无须配置. 仅支持纯文本文件的索引(Indexing)和搜索(Search). 不负责由其他格式的文件抽取纯文本文件, ...

  6. Jquery表单与表格的运用

    1,表单的应用: a. 单行文本框的应用  多行文本框的应用 b.复选框的框的应用 c.下拉框的应用 d.表单验证 2,表格的应用: a. 表格变色 b.表格展开关闭 d.表格内容筛选 3,多行文本框 ...

  7. python笔记之常用模块用法分析

    python笔记之常用模块用法分析 内置模块(不用import就可以直接使用) 常用内置函数 help(obj) 在线帮助, obj可是任何类型 callable(obj) 查看一个obj是不是可以像 ...

  8. pm2安装及常用命令

    安装:npm install -g pm2 启动程序:pm2 start <app_name|id|all> 列举进程:pm2 list 退出程序:pm2 stop <app_nam ...

  9. stopWeblogic时提示错误以及无法关闭服务

    执行: y@y:~/oracle/middleware/user_projects/domains/yshy_domain/bin$ ./stopWebLogic.sh 错误信息如下: Stoppin ...

  10. [转载] 50个Android开发人员必备UI效果源码

    好东西,多学习! Android 仿微信之主页面实现篇Android 仿微信之界面导航篇Android 高仿QQ 好友分组列表Android 高仿QQ 界面滑动效果Android 高仿QQ 登陆界面A ...