stringstream的用法(转)

stringstream的基本用法

stringstream是字符串流。它将流与存储在内存中的string对象绑定起来。

在多种数据类型之间实现自动格式化。

1 stringstream对象的使用

#include<sstream>
#include<iostream>
using namespace std;
int main()
{
        string line,word;
        while(getline(cin,line))
        {
                stringstream stream(line);
                cout<<stream.str()<<endl;
                while(stream>>word){cout<<word<<endl;}
        }
        return 0;
}

输入:shanghai no1 school 1989

输出:shanghi no1 school 1989

      shanghai

    no1

    school

    1989

2stringstream提供的转换和格式化

程序:

#include<sstream>
#include<iostream>
using namespace std;
int main()
{
        int val1 = 512,val2 =1024;
        stringstream ss;
        ss<<"val1: "<<val1<<endl          //“val1: "此处有空格,字符串流是通过空格判断一个字符串的结束     <<"val2: "<<val2<<endl;
        cout<<ss.str();

        string dump;
        int a,b;
        ss>>dump>>a     >>dump>>b;
        cout<<a<<" "<<b<<endl;
        return 0;
}

输出为:val1: 512

    val2: 1024

    512 1024

第一处黑体字部分:将int类型读入ss,变为string类型

第二处黑体字部分:提取512,1024保存为int类型。当然,如果a,b声明为string类型,那么这两个字面值常量相应保存为string类型

3其他注意

stringstream不会主动释放内存(或许是为了提高效率),但如果你要在程序中用同一个流,反复读写大量的数据,将会造成大量的内存消 耗,因些这时候,需要适时地清除一下缓冲 (用 stream.str("") )

#include <cstdlib>
#include<iostream>
#include<sstream>
using namespace std;
int main()
{
        stringstream ss;
        string s;
        ss<<"shanghai no1 school";
        ss>>s;
        cout<<"size of stream = "<<ss.str().length()<<endl;
        cout<<"s: "<<s<<endl;
        ss.str("");
        cout<<"size of stream = "<<ss.str().length()<<endl;
}

输出:

size of stream = 19
s: shanghai
size of stream = 0

时间: 2024-10-10 15:56:12

stringstream的用法(转)的相关文章

&lt;C++&gt;istringstream, ostringstream, stringstream的用法

1.ostringstream:ostringstream 对象用来进行格式化的输出,可以方便的将各种类型转换为string类型.ostringstream 只支持 << 操作符. 2.istringstream :istringstream 对象用来把一个已定字符串中的以空格隔开的内容提取出来.istringstream 只支持 >> 操作符. 3.stringstream: stringstream类就是上述istringstream和ostringstream类的综合,支持&

HDU 4329 MAP(stringstream的用法)

这个题目有点绕,但是按着他的意思写不难模拟出来.本来是一场学弟们的训练赛,我这个学长在赛场上却WA了四次都没过,三条黑线就一直在我的脑袋上挂着... 赛后开始找原因,后来发现题目看错了,1/R中的R是指原先URL的个数. 改过来发现还是过不了,想到了自己的输入处理可能是有问题的,既然自己模拟容易出错,那就使用了stringstream,自动提取单词,成功AC. 意外的发现stringstream的功能十分强大,但是因为速度比较慢,用处比较少,所以也不怎么用,这个哥们写的不错,感兴趣可以去看看哦.

转:stringstream的用法

[本文来自]http://www.builder.com.cn/2003/0304/83250.shtmlhttp://www.cppblog.com/alantop/archive/2007/07/10/27823.html使用stringstream对象简化类型转换C++标准库中的<sstream>提供了比ANSI C的<stdio.h>更高级的一些功能,即单纯性.类型安全和可扩展性.在本文中,我将展示怎样使用这些库来实现安全和自动的类型转换. 为什么要学习 如果你已习惯了&l

stringstream的用法-类型之间的转换

本文来自: http://www.builder.com.cn/2003/0304/83250.shtmlhttp://www.cppblog.com/alantop/archive/2007/07/10/27823.html 使用stringstream对象简化类型转换C++标准库中的<sstream>提供了比ANSI C的<stdio.h>更高级的一些功能,即单纯性.类型安全和可扩展性.在本文中,我将展示怎样使用这些库来实现安全和自动的类型转换. 为什么要学习 如果你已习惯了&

stringstream常见用法介绍

1 概述 <sstream> 定义了三个类:istringstream.ostringstream 和 stringstream,分别用来进行流的输入.输出和输入输出操作.本文以 stringstream 为主,介绍流的输入和输出操作. <sstream> 主要用来进行数据类型转换,由于 <sstream> 使用 string 对象来代替字符数组(snprintf方式),就避免缓冲区溢出的危险:而且,因为传入参数和目标对象的类型会被自动推导出来,所以不存在错误的格式化符

C++ stringstream详解-安全高效的类型转换

在头文件<sstream>中包含. string 到int 的转换 string result="10000"; int n=0; stream<<result; stream>>n;//n等于10000 如果你打算在多次转换中使用同一个stringstream对象,记住再每次转换前要使用clear()方法: 在多次转换中重复使用同一个stringstream(而不是每次都创建一个新的对象)对象最大的好处在于效率.stringstream对象的构造和

各种STL的基本用法

目录 STL及一些常用函数的基本用法 1.vector(向量)的基本用法 2.queue(队列)的基本用法 3.stack(栈)的基本操作 4.set(集合)的基本用法 5.map(映射)的基本用法 6.unorded_map的用法 7.list(列表)的基本用法 7.next_premutation(全排列)的用法 8.stringstream的用法 9.unique的用法 10.lower_bound的用法 11.string中的substr的用法 STL及一些常用函数的基本用法 1.vec

初探stringstream

stringstream 的用法就见代码吧: 1 ///string 转 int 2 int main() 3 { 4 string a="10"; 5 stringstream ss; 6 int n; 7 ss<<a; 8 ss>>n; 9 n+=5; 10 printf("%d\n",n); 11 return 0; 12 } 1 ///int 转 string 2 int main() 3 { 4 int n=120; 5 strin

leetcode笔记:Count and Say

一.题目描述 The count-and-say sequence is the sequence of integers beginning as follows: 1, 11, 21, 1211, 111221, - 1 is read off as "one 1" or 11. 11 is read off as "two 1s" or 21. 21 is read off as "one 2", then "one 1"