c++随笔

来源:互联网 发布:网络设计师待遇 编辑:程序博客网 时间:2024/06/05 16:50

在网上到处翻源码的时候,翻到了一种将string强转成double类型的写法,感觉甚是神奇,于是就贴出来看看,代码如下:

#include<iostream>#include<sstream>#include<cstring>using namespace std;int main(){    string str;    double d;    cin>>str;    stringstream ss;    ss<<str;    ss>>d;    cout<<d<<endl;    return 0;} 

还有其他的几种用法
总结出来就是以下几点。
第一点:stringstream对象的使用,有空格时,字符串是通过空格判断一个字符串的结束,
第二点:就是它提供的格式化和转换
例如

    string str;//    double d;//待转的浮点数    cin>>str;//输入一个string变量    stringstream ss;//ss的类型是stringstream    ss<<str;//将str转化为ss    ss>>d;//进行转化

其实这个结构应该是一个队列,符合先进先出原则;

ss<<"name1: "<<name1<<"name2: "<<name2<<endl;//这上下是一一对应的,name1 对应的是string1    ss>>string1>>name3>>string2>>name4>>endl;// name2: 对应的是string2,而name1对应的是name3,name2对应的是name4 

第三点就是:反复多次使用同一个流时,我们要将其清空,然后在进行下一次的转换即可,常用的方法有两种;

    stringstream ss;    ss.str("");    ss.clear();

这样做可以提高程序的效率,反正它不会主动的释放内存,会造成大量的内存消耗,所以必须要进行清空的工作,以上就是这些东西;

原创粉丝点击