关于VC6.0与Visual Studio 20xx的串数互转问题

来源:互联网 发布:淘宝怎么发布产品 编辑:程序博客网 时间:2024/06/16 10:17

因工作需要,常要自己开发一些工具来与硬件对接,以前都是用vc6.0,现在转到vs系列(我用的是VS2013)很多地方不能兼容下来,将VC6.0的程序移植过来一堆错误,而针对串与数值的转换使用源库问题经常搞乱,特此将这些容易搞混的东西在这里分享,给大家带来开发的便利。


int iData1 = 0;
int iData2 = 4280;
int iData3 = 0x475A;
float fData2 = 1.1234;

CString str1 = "123";
CString str2 = "0x5A0F";


VC6.0 :
一、将数值转成字符串
iData1 = atoi(str1);//iData1 = 123
char *str; itoa(iData2, str, 10); //str = "4280"
string --> char *
  string str("OK");
    char * p = str.c_str();
十进制用:
atof():将字符串转换为双精度浮点型值。
atoi():将字符串转换为整型值。
atol():将字符串转换为长整型值。
十六进制用
strtod():将字符串转换为双精度浮点型值,并报告不能被转换的所有剩余数字。
strtol():将字符串转换为长整值,并报告不能被转换的所有剩余数字。
strtoul():将字符串转换为无符号长整型值,并报告不能被转换的所有剩余数字。

itoa:把一整数转换为字符串itoa(要转的数, 输出对应的串, 进制);
ltoa:把一长整形转换为字符串
ultoa:把一无符号长整形转换为字符串



VS2013:

iData1 = _tcstoul(str2, NULL, 16);//iData1 = 0x5A0F;十六进制串转成值在网上有很多都自己写函数转,其实库里面是后这个函数的
str.Format("%.2f",fData2); //保留2位小数 str = "1.12" 格式“%x”"%d"等
下面是十六进制串转换数
_tcstof:将字符串转换为双精度浮点型值
_tcstol:将字符串转换为长整值
_tcstoul:将字符串转换为无符号长整型值

下面是十进制串转换数
_tstof: 
_tstoi:
_tstol:

下面是串转数值的
_itot_s:
_ltot_s:
_ultot_s:
_itot:
_ltot:
_ultot:


阅读全文
0 0