1 #include <iostream>
2 #include <sstream>//大概是字符串流
3 #include <string>
4 using namespace std;
5
6 //c++方法 将double数值 转换成string对象
7 string convertToString(double x)
8 {
9 ostringstream o;
10 if(o<<x)//将x作为string流入o //很像c语言里面的sprintf
11 return o.str();//将o中的值转换成string对象
12 else
13 return "conversion error";//o读取x失败
14 }
15
16 //c++方法 将string对象转换成double数值;
17 double convertFromString(string & s)
18 {
19 istringstream is(s);
20 double x;
21 if(is>>x)//很像c语言里面的sscanf 从流中第一个字符开始分流出一个double
22 return x;
23 else
24 return 0.0;
25 }
26 int main()
27 {
28 string a,e;
29 char b[10];
30 int c=2013;
31 double d=3.1415;
32 /*c方法将数值转换成string*/
33 sprintf(b,"%d",c);
34 a=b;
35 cout<<a<<endl;
36 /*c++方法将数值转换成string*/
37 e=convertToString(d);
38 cout<<e<<endl;
39 /*c方法从string中分离出数值*/
40 a+="good";
41 c=-1;//确保下一个输出是从a中获得的值
42 sscanf(a.c_str(),"%d%*s",&c);
43 cout<<c<<endl;
44 /*c++方法从string中分离一个double值*/
45 e+="ok";//这样能够考察一下是否是分离
46 d=-1;
47 d=convertFromString(e);
48 cout<<d<<endl;
49 return 0;
50 }
1.sscanf(char * str,"格式符",...)函数和sprintf(char *str,"格式符",...)是c语言里面两个不错的函数 理解起来对流的理解有帮助 sscanf()就是从第一个参数字符串中按照转换符分离成不同的字段(存储在不同的内存里) 这样听起来就像是输入流了 sprintf()呢 就是把
字段放进str里面
2.c++的sstream 说实话我在书上面没有翻到过 不过在头文件里确实见过 这个应该是string stream 有两个类:istringstream 字符串输入流 >> ostringstream 输出流<< 这两个可以构造函数来取代c里面的 sscanf()和sprintf()函数;
原文链接: https://www.cnblogs.com/dragonfive/archive/2013/02/08/2909195.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/77798
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!