【C++库函数】stringstream-类型转换&&字符分割
继续填坑٩(•̤̀ᵕ•̤́๑),这次是 stringstream的内容,最初是看到它可以把字符串直接输出成int类型,惊了,但是一直不是很懂。在网上查了很多资料,才终于差不多理解。stringstream 是C++提供的一个字符串流,和 cin,cout 输入输出流类似,只不过它不是从从键盘或文件输入,也不是输出到屏幕或文件中,而是接受一个对象的输入,或把缓存区的内容输出到一个对象中。具体可以用在类型转换和字符分割中。
基本方法(操作)
clear()-用来清空流标志(输入,输出标志)
str()-获得当前流中的内容
str("content")-设置流的内容(或清空流的内容)
operator <<-添加内容到stringstream对象
operator >>-从stringstream流缓存区中输出内容
应用
类型转换
int a;
string s;
stringstream ss;
//int型转换为字符串类型
ss << a; //将a输入流中(输入模式)
ss >> s; //将流中的数值输出到字符串s中(输出模式)
//字符串类型转换为int型
ss << s; //将字符串输入到流中
ss >> a; //将流中的字符串输出到int型变量a中
//注意:如果做多次数据转换须调用clear()和str("")来清空输入输出标志和内容
int a = 0, b = 0;
stringstream ss;
ss << "123";
ss >> a;
ss.clear();
ss.str("");
ss << "456";
ss >> b;
cout << "a:" << a << endl;
cout << "b:" << b << endl;
cout << "ss:" << ss.str() << endl;
//运行结果,不加clear()和str("");
a:123
b:0
ss:123
//原因:不加clear()和str(""),流处于输出模式无法接收新内容"456"且未被清空,所以ss仍为"123",又由于缓存区的内容已输出到a中,所以b中无内容。
//运行结果,加clear()但不加str("");
a:123
b:456
ss:123456
//原因:加入clear()清空模式,可以接收新内容"456",所以ss:123456。缓存区依次缓存"123","456"并分别输出到a, b,所以a:123, b:456
//运行结果,加clear()和str("");
a:123
b:456
ss:456
//原因:clear()清空模式,str("")清空ss对象的内容。
支持char*的输入和输出
char ch[20];
stringstream ss;
ss << 2333;
ss >> ch; //直接将数输出到ch字符数组中
字符分割
stringstream ss("hello hi hey");
string word;
while(ss >> word){
cout << word << endl;
}
//运行结果
hello
hi
hey
三种给stringstream对象赋初值的方式
stringstream ss("123"); //创建的时候赋初值
ss.str("123"); //str()函数赋值
ss << "123"; //操作符"<<"添加内容(需注意当前模式)
将C++中的stringstream转换为char类型可以通过以下步骤实现:
- 将stringstream中的字符串读入一个string类型的变量中。
- 将string类型的变量转换为const char*类型的指针。
- 将const char*类型的指针拷贝到char类型的数组中。
#include <iostream>
#include <sstream>
#include <string.h>
int main() {
std::stringstream ss;
ss << "This is a test";
std::string str;
ss >> str;
const char* cstr = str.c_str();
char char_array[strlen(cstr)];
strcpy(char_array, cstr);
std::cout << char_array << std::endl;
return 0;
}
【C++库函数】stringstream-类型转换&&字符分割的更多相关文章
- EasyPR--开发详解(7)字符分割
大家好,好久不见了. 一转眼距离上一篇博客已经是4个月前的事了.要问博主这段时间去干了什么,我只能说:我去“外面看了看”. 图1 我想去看看 在外面跟几家创业公司谈了谈,交流了一些大数据与机器视觉相关 ...
- CDH5.4.5运行多字符分割记录
准备工作: 测试文件内容:cis_cust_imp_info 20131131|+|100010001001|+|BR01|+|2000.0120131131|+|100010001002|+|BR0 ...
- Python中通过多个字符分割(split)字符串的方法
python中字符串自带的split方法一次只能使用一个字符对字符串进行分割,但是python的正则模块则可以实现多个字符分割 import re re.split('-|_','sharejs_ha ...
- 车牌识别LPR(六)-- 字符分割
第六篇:字符分割 在知道了车牌字符的规律之后,可以根据车牌的特点对字符进行分割.一般最容易想到的方法就是根据车牌投影.像素统计特征对车牌图像进行字符分割的方法.是一种最常用的.最基本的.最简单的车牌字 ...
- SOM聚类与Voroni图在验证码字符分割中的应用
http://www.docin.com/p-1300981517.html SOM聚类与Voroni图在验证码字符分割中的应用
- EasyPR源码剖析(8):字符分割
通过前面的学习,我们已经可以从图像中定位出车牌区域,并且通过SVM模型删除“虚假”车牌,下面我们需要对车牌检测步骤中获取到的车牌图像,进行光学字符识别(OCR),在进行光学字符识别之前,需要对车牌图块 ...
- opencv 车牌字符分割 ANN网络识别字符
最近在复习OPENCV的知识,学习caffe的深度神经网络,正好想起以前做过的车牌识别项目,可以拿出来研究下 以前的环境是VS2013和OpenCV2.4.9,感觉OpenCV2.4.9是个经典版本啊 ...
- Python中通过多个字符分割(split)字符串的方法--转载
Python中字符串自带的split方法一次只能使用一个字符对字符串进行分割,但是python的正则模块则可以实现多个字符分割 import re re.split('_#|','this_is#a| ...
- C# 如何用多字符分割字符串
用单字符分割字符串大家应该很熟悉,例如: string source = "dfd^Afdf^AAAAAA^Adfdf"; var list= source.Split('A'); ...
- php把字符串指定字符分割成数组
<?php $str="1|2|3|4|5|"; $var=explode("|",$str); print_r($var); ?> $var=ex ...
随机推荐
- C语言假设今天是星期日,编写一个程序,求2019天后是星期几。
#include<stdio.h> void main() { int n = 2019, d;//定义变量和常量 d = n % 7;//计算余数 switch (d)//选择星期 { ...
- 关于Delphi
# 关于Delphi ··Delphi中使用的面向对象pascal编程语言. ··Pascal语言最初由瑞士苏黎士理工学院的尼古拉斯-沃斯(Niklaus Wirth)教授在1971年设计. ··19 ...
- 基于OpenAi通用特定领域的智能语音小助手
无穷尽的Q&A 钉钉...钉钉... 双双同学刚到工位,报销答疑群的消息就万马纷沓而来.她只能咧嘴无奈的摇摇头.水都还没有喝一口就开始"人工智能"的去回复.原本很阳光心情开 ...
- LangChain内幕指南
1.概述 在人工智能迅速演进的时代,诸如Open AI的ChatGPT和Google的Bard等大型语言模型(LLMs)正彻底改变我们与技术互动的方式.这些技术巨头和SaaS公司正在竞相利用LLMs的 ...
- xray+bp+echole+rad
安装证书 burp安装证书 开启burp suite,如下图所示下载证书后输入cacert.der即可 浏览器中上传证书,设置-->隐私和安全-->管理证书,一直下一步. xray安装证书 ...
- Mybatis大于、小于....转义写法
描述 转义前 转义后 大于 > > 大于等于 >= >= 小于 < < 小于等于 <= <= 和 & & 单引号 ' &apos ...
- Selenium接管已经打开的浏览器并爬取数据
""" P.S:需要接管现有浏览器 ** 使用步骤: 1.打开浏览器,设置好远程调试端口,并扫描登录淘宝. chrome.exe --remote-debugging-p ...
- 数字孪生融合GIS系统能够为物流行业提供什么解决方案?
全球贸易和电子商务的不断发展,让物流行业面临着越来越多的挑战.其中,提高运输效率.降低成本.优化供应链和增强可持续性等问题成为业界关注的焦点.在这个数字化时代,数字孪生和GIS系统的融合为物流行业带来 ...
- System类的方法
1.exit() 2.currentTimeMills() 代码练习
- python 之 LDAP 用户统一认证登录
pip install ldap3 # 环境安装 from ldap3 import Server, Connection,SUBTREE ldap_host = 'xx.xx.x.x' #ldap服 ...