VC++中数值与字符串相互转化(总结)
2014-04-08 17:30
281 查看
环境:win7系统 64位 VS2008平台
注意:
vs2008推荐使用_itoa_s、_ltoa_s这两种方法,否则会有警告。
个人经验,慎用ostringstream、istringstream,在使用过程中出现了无法理解的错误。
#include <iostream> #include <stdio.h> #include <stdlib.h> #include <sstream> using namespace std; int main() { /*******************数值到字符串**************/ int a_int=22; long l_long=2147483647; float f_float=12.5; double d_double=1.5; char ary[100]=""; //_itoa_s/_ltoa_s; #include <stdlib.h> _itoa_s(a_int,ary,2);//二进制-10110 _itoa_s(a_int,ary,8);//八进制-26 _itoa_s(a_int,ary,10);//十进制-22 _itoa_s(a_int,ary,16);//十六进制-16 _ltoa_s(l_long,ary,10);//十进制-33 //sprintf_s 头文件:stdio.h sprintf_s(ary,"%.2f",f_float);//保留两位小数 1.50 cout<<ary<<endl; sprintf_s(ary,"%f",d_double);//默认格式 1.500000 cout<<ary<<endl; //ostringstream 头文件:sstream ostringstream sstr; sstr<<f_float; string str=sstr.str(); /*******************数值到字符串**************/ /*******************字符串到数值**************/ //atoi/atol/atof 头文件:stdlib.h int b_int=atoi("32"); long b_long= atol("333"); float b_double = atof("23.4");//double 也能凑合着用 //sscanf_s 头文件:stdio.h sscanf_s ("23 23.4", "%d %f", &b_int, &b_double); //istringstream 头文件:sstream istringstream s1("23 23.4"); s1>>b_int>>b_double; /*******************字符串到数值**************/ }
注意:
vs2008推荐使用_itoa_s、_ltoa_s这两种方法,否则会有警告。
个人经验,慎用ostringstream、istringstream,在使用过程中出现了无法理解的错误。
相关文章推荐
- JS对象和JSON字符串相互转化总结
- 字符、字符串与数值之间的相互转化
- c++字符串、数组输入输出及相互转化总结
- 【C++】字符串和数值类型的相互转化(借助STL)
- 数值与字符串之间的相互转化
- Date 类学习总结(Calendar Date 字符串 相互转换 格式化)
- ANSI、UTF-8、UNICODE字符串相互转化
- js数字和字符串相互转化
- 字符串、字符数组、list之间相互转化
- gson小试牛刀——复杂对象和JSON字符串相互转化
- js把科学计数法表示的字符串转化为数值的方法
- Date类学习总结(Calendar Date 字符串 相互转换 格式化)
- C/C++字符串与数字的相互转化
- Date类学习总结(Calendar Date 字符串 相互转换 格式化)
- 字符串转化成整形与相互转化
- 新浪旧事-JS中字符串转化与日期的相互转化及比较时间先后
- VC++下“CString”与“char *”的相互转化
- 程序目的:实现c++整型和字符数组,字符串的相互转化
- 【原】整型与字符串的相互转化
- 8.1.3 字符串与基本数据的相互转化