用stringstream读取数据「建议收藏」

用stringstream读取数据「建议收藏」思想:全部读到一个字符串里,遇到”,”就换成空格,然后用这个字符串构造一个stringstream,用>>读到数组里。stringstream用法分为istream和ostringstream.1std::stringname(“zeta”);2intage=27;34ostringstreamos;5o

大家好,又见面了,我是你们的朋友全栈君。

思想:

全部读到一个字符串里,遇到”,”就换成空格,然后用这个字符串构造一个stringstream, 用>>读到数组里。

stringstream用法

分为istream和ostringstream.

1     std::string name("zeta");
2     int age = 27;
3 
4     ostringstream os;
5     os << "name:"<<name<<""<<"age:"<<age<<endl;
6     cout<<os.str()<<endl;

输出:name:zeta age:27


 

 1     std::string name("zeta");
 2     int age = 27;
 3 
 4     ostringstream os;
 5     os << "name:"<<name<<""<<"age:"<<age<<"\n";
 6 
 7     istringstream is(os.str());
 8     std::string tmp;
 9     int age1;
10 
11     // name:zeta
12     is >> tmp;
13     cout<<tmp<<endl;
14 
15     // age:27
16     is >> tmp;
17     cout<<tmp<<endl;

注释为输出结果,注意从stringstream中解析对象的时候,是以空格和回车键为分隔符的。

 

1     std::string name("12345");
2     int age = 27;
3     stringstream os;
4     os << name;
5     os >> age;
6     // age = 12345
7     cout<<age<<endl;

 

1     std::string name("12345");
2     int age = 27;
3     stringstream os;
4     os << age;
5     os >> name;
6     // name:27
7     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());
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/135634.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Java基础篇:泛型与类型擦除

    Java基础篇:泛型与类型擦除

    2021年10月3日
    44
  • 黑盒测试c语言用例,黑盒测试用例设计技术包括_测试用例包括什么_常用黑盒测试用例设计(4)…

    黑盒测试c语言用例,黑盒测试用例设计技术包括_测试用例包括什么_常用黑盒测试用例设计(4)…因此,可以把全部输入数据合理地划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,这样就可以用少量的代表性测试数据,来取得较好的测试结果。黑盒测试用例设计技术包括*是指对于程序的规格说明来说,是合理的有意义的输入数据构成的集合。利用它可以检验程序是否实现预先规定的功能和性能。在具体问题中,有效等价类可以是一个,也可以是多个。有效等价类*是指对于程序的规格说明…

    2022年6月13日
    33
  • 大数据管理概论

    大数据管理概论大数据管理概论1大数据隐私1.1引言如今的数据主要大数据的类型隐私特征与类别大数据的隐私风险1.2隐私保护技术匿名化技术数据加密技术差分隐私技术隐私信息检索技术参考文献1大数据隐私1.1引言21世纪网络技术的发展使得个人的隐私无处可藏如今的数据主要大数据的类型1)原生数字化数据这类数据自然产生出来就适合计算机存储的和处理的数据。例如:电子邮件与文本信息,GPS位置数据,关…

    2022年6月10日
    51
  • sort函数对vector排序_sort函数对结构体数组排序

    sort函数对vector排序_sort函数对结构体数组排序一、遇到问题:今天写代码的是遇到想对vector进行排序的问题,隐约记得std::sort函数是可以对vector进行排序的,但是这次需要排序的vector中压的是自己定义的结构体(元素大于等于2),想以其中某一个元素进行正序或逆序排序,则不能直接使用sort函数。二、解决方案:在网上找资料的过程中,看到http://blog.csdn.net/aguisy/article/d

    2022年8月12日
    7
  • USB协议基本知识[通俗易懂]

    USB协议基本知识[通俗易懂]USB基本知识USB的重要关键概念:1、端点:位于USB设备或主机上的一个数据缓冲区,用来存放和发送USB的各种数据,每一个端点都有惟一的确定地址,有不同的传输特性(如输入端点、输出端点、配置端点、批量传输端点)2、帧:时间概念,在USB中,一帧就是1MS,它是一个独立的单元,包含了一系列总线动作,USB将1帧分为好几份,每一份中是一个USB的传输动作。3、upstream、…

    2022年6月16日
    183
  • 数据分析,主成分分析例题

    数据分析,主成分分析例题已知协方差矩阵求X的各主成分以及主成分的贡献率主成分分析原理:找出几个综合变量来代替原来众多的变量,使这些综合变量能尽可能地代表原来变量的信息量,且彼此之间互不相关统计方法:主成分分析(主分量分析)主成分分析步骤1.根据已知协方差矩阵,求出相应的特征值(特征根)令|kE-A|=0(其中k是特征值),求出的k就是所需要的特征值2.求出对应特征值的特征向量解方程|kE-A|X=0,求X的所有情况(参考高等代数的第三章解线性方程组)求出基本解系,设定自由未知量的值(X是向量)3.对所求出来

    2025年7月12日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号