C++中std::stringstream类型对象如何清除
来源:互联网 发布:淘宝卖家手机端装修 编辑:程序博客网 时间:2024/06/08 18:22
由于需要循环向流中写入数据,以此来拼成一个需要的字串,且需要多次使用。在这里的需求下,自己想当然的以为是该类中也有clear()的成员函数,结果发现,并不行,也无法清除其中的已经存的数据,造成了字串拼接过多的错误
使用std::stringstream类的clear()成员函数测试结果
#include<iostream> #include<string> #include<sstream> using namespace std; int main() { stringstream stream; string b; stream.precision(10); //重设置stream的精度 double a = 4.23233; stream << a; //将浮点数a加入缓存 b = stream.str(); //将缓存中的各种数据转换为string类 cout << b << endl; stream.clear(); //调用clear()方法 double aa = 2.3; stream << aa; //将浮点数aa加入缓存 b = stream.str(); //将缓存中的各种数据转换为string类 cout << b; }4.23233
4.232332.3
clear()并没有有将stringstream对象的缓存清空!
解决方法如下:
1、是在使用的地方定义一个作用域比较短的局部变量,拼接完了,然后发送给客户端,然后系统自动释放其内存,下次使用再定义;
2、可以定义一个作用域较大区域,或者定义在类的头文件中都可以,每次拼接完了之后发送给客户端,清理其已存的内容
std::stringstream strm; //用来拼接返回给客户端的排行榜字串std::string proceMsg; //最终返回给客户端的字串数据////具体的拼接操作//strm.str("");proceMsg = "";
采用上述方法的测试程序:
#include<iostream> #include<string> #include<sstream> using namespace std; int main() { stringstream stream; string b; stream.precision(10); //重设置stream的精度 double a = 4.23233; stream << a; b = stream.str(); cout << b << endl; stream.str(""); //清空缓存 double aa = 2.3; stream << aa; b = stream.str(); cout << b; }
结果如下
4.23233
2.3
阅读全文
0 0
- C++中std::stringstream类型对象如何清除
- C++中stringstream类如何清除缓存
- 【C++】使用stringstream对象简化类型转换
- c++ 中使用stringstream对象来进行类型转换
- std::stringstream
- c++:: when std::stringstream std::cout encouter uint8/sint8
- C++ tips: std::stringstream 对象的复用
- 使用stringstream对象简化类型转换
- 使用stringstream对象简化类型转换
- 使用stringstream对象简化类型转换
- 使用stringstream对象简化类型转换
- 使用stringstream对象简化类型转换
- 使用stringstream对象简化类型转换
- 使用stringstream对象简化类型转换
- 使用stringstream对象实现类型转换实例
- 使用stringstream对象简化类型转换
- 使用stringstream对象简化类型转换
- 使用stringstream对象简化类型转换
- Deeplearning.ai学习笔记之第一课第一周
- Linux下创建svn以及相关操作
- linux下自创网络编程聊天室(4)改进两点
- 数论--几何--笛卡尔原理
- 《linux设备驱动开发详解》中支持阻塞操作的globalfifo设备驱动
- C++中std::stringstream类型对象如何清除
- 51nod 1050 循环数组最大子段和
- HTTP Cookie
- 汇编语言入门四:打通C和汇编语言
- 添加一个页面覆盖
- 8月19日TMS开发笔记
- 组合数取模(0)
- Csharp进阶:非泛型集合
- POJ