C++中使用stringstream进行类型转换操作
1. stringstream strm; 创建stringstream对象
2. stringstream strm(s) ; s是string,复制构造函数
3. strm.str() ; 返回strm中存储的string类型对象
4. strm.str(s); 将string s复制给strm, 返回void
功能:
1.细化处理功能。如处理文件每行的同时处理每个单词,可用stringstream实现。
string line, word;
while( getline(cin, line))
{
istringstream stream(line);
while(stream>>word)
processing word;
}
2.类型转化或者格式化。
sstream可以自动把算术类型转化为相应的string表示形式,反过来也可以。
int val=512;
ostringstream format_massage;
format_massage << "val:"<<val<<endl;
std::string name("zeta");
int age = ;
ostringstream os;
os << "name:"<<name<<""<<"age:"<<age<<endl;
cout<<os.str()<<endl;
输出:name:zeta age:27
std::string name("zeta");
int age = ;
ostringstream os;
os << "name:"<<name<<""<<"age:"<<age<<"\n";
istringstream is(os.str());
std::string tmp;
int age1;
// name:zeta
is >> tmp;
cout<<tmp<<endl;
// age:27
is >> tmp;
cout<<tmp<<endl;
注释为输出结果,注意从stringstream中解析对象的时候,是以空格和回车键为分隔符的。
std::string name("");
int age = ;
stringstream os;
os << name;
os >> age;
// age = 12345
cout<<age<<endl;
std::string name("");
int age = ;
stringstream os;
os << age;
os >> name;
// name:27
cout<<name<<endl;
可以作为将数字和字符串相互转化的工具。
输入输出的头文件 <iostream>
string流的头文件 <sstream>
文件流的头文件
<fstream>
stringstream的用法
1.利用输入输出做数据转换
stringstream ss_stream;
ss_stream << i; // 将int输入流中
ss_stream >> str; // 将ss_stream中的数值输出到str中 //注意:如果做多次数据转换;必须调用clear()来设置转换模式
ss_stream << "456";
ss_stream >> i; // 首先将字符串转换为int
ss_stream.clear();
ss_stream << true;
ss_stream >> i; // 然后将bool型转换为int;假如之前没有做clear,那么i会出错 //运行clear的结果
i = 456
i = 1
//没有运行clear的结果
i = 456
i = 8800090900
2.支持char*的输入和输出
char sz_buf[20];
ss_stream << 8888;
ss_stream >> sz_buf; // 直接将数输出到sz_buf字符数组中
3.来存储可变数据的列表
stringstream ss_stream;
ss_stream << "字符串一" << endl;
ss_stream << "字符串二" << endl;
ss_stream << "字符串三" << endl;
ss_stream << "字符串四" << endl;
ss_stream << "字符串五" << endl; char buffer[100];
while ( ss_stream.getline(buffer, sizeof(buffer))
{
printf("msg=%s\n", buffer);
}
ss_stream("");// 释放字符串流中的资源 // 或者用string来接收
stringstream ss_stream;
string stemp;
while ( getline(ss_stream, stemp) )
{
task_download(stemp.c_str(), relate.c_str());
}
C++中使用stringstream进行类型转换操作的更多相关文章
- C++中使用stringstream简化类型转换
C++标准库中的<sstream>提供了一个stringstream,以前基本没用过,突然发现很好用(^-^)V 参见 http://www.cplusplus.com/reference ...
- SSIS从理论到实战,再到应用(7)----常用的数据类型转换操作
原文:SSIS从理论到实战,再到应用(7)----常用的数据类型转换操作 上期回顾: SSIS从理论到实战,再到应用(6)----SSIS的自带日志功能 在抽取各种应用的数据时候,经常会遇到数据需要转 ...
- C++中的显式类型转换
一.学习总结 1.C++中额外提供的类型转换有 (1) reinterpret_cast: 格式:reinterpret_cast<type-id> (expression)①type-i ...
- C++语言中的四种类型转换
1 引子 这篇笔记是根据StackOverflow上面的一个问题整理而成,主要内容是对C/C++当中四种类型转换操作进行举例说明.在之前其实对它们都是有所了解的,而随着自己在进行总结,并敲了一些测试示 ...
- 使用 stringstream 进行类型转换
如何用使用stringstream进行类型转换: 1. 下面例子为整型和sting类型的相互转换示例 整型转换为字符串类型 string NumberToString(int num){ str ...
- Python中json的简单读写操作
Python中json的简单读写操作 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. JSON采用完全独立于语言的 ...
- C语言中关于对目录的操作
原文地址:C语言中关于对目录的操作 目录的操作不论是在嵌入式产品还是应用软件编程都是必不可少的,不同的开发语言可能略有不同,笔者主要是讨论在Linux平台下对目录的一系列操作: 1.获取当前目录操作: ...
- Node.js 中MongoDB的基本接口操作
Node.js 中MongoDB的基本接口操作 连接数据库 安装mongodb模块 导入mongodb模块 调用connect方法 文档的增删改查操作 插入文档 方法: db.collection(& ...
- Linux 中 Vi 编辑器的简单操作
Linux 中 Vi 编辑器的简单操作 Vi 编辑器一共有3种模式:命名模式(默认),尾行模式,编辑模式.3种模式彼此需要切换. 一.进入 Vi 编辑器的的命令 vi filename //打开或新 ...
随机推荐
- ASP.NET MVC 文件异步上传问题处理
最近在做一个网站,用asp.net MVC4.0来开发,今天遇到了个小问题,通过查找相关渠道解决了,在这里把这个问题写出来,问题非常简单,不喜勿喷,mark之希望可以给遇到相同问题的初学者一点帮助.我 ...
- .NET注册页面代码
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI ...
- 再探Java基础——String.format(String format, Object… args)的使用
最近看到类似这样的一些代码:String.format("参数%s不能为空", "birthday"); 以前还没用过这功能不知咐意思,后研究了一下,详细讲解如 ...
- 面试题 HashMap 原理
HashMap与HashTable的区别 总结: HashMap是用来代替HashTable的类,一般建议使用HashMap.最核心的区别:HashTable的方法是同步的(线程安全),而HashMa ...
- mysql的replication(主从同步)总结
很好的文章,对mysql的主从架构有深入理解. mysql主从同步,从master同步数据到slave慢的情况下,是不是可以改成多线程处理加快同步速度? 参考文章如下: MySQL Replicati ...
- Hyper-V的三种网卡
External ======= 虚拟机和物理网络.本地主机都能通信 Internal ======= 虚拟机之间互相通信,并且虚拟机能和本机通信 Private ======= 仅允许运行在这台物理 ...
- sublime开启php自动代码补全
配置文件添加 "auto_complete_selector": "source, text", 配置文件打开方式:preferences->settin ...
- Hadoop源码解析之 rpc通信 client到server通信
rpc是Hadoop分布式底层通信的基础,无论是client和namenode,namenode和datanode,以及yarn新框架之间的通信模式等等都是采用的rpc方式. 下面我们来概要分析一下H ...
- 【转】深入理解Java内存模型(六)——final
与前面介绍的锁和volatile相比较,对final域的读和写更像是普通的变量访问.对于final域,编译器和处理器要遵守两个重排序规则: 在构造函数内对一个final域的写入,与随后把这个被构造对象 ...
- iOS判断UIScrollView的滚动方向
- (void) scrollViewDidScroll:(UIScrollView *)scrollView { CGFloat newY = scrollView.contentOffset.y; ...