c++各种数据类型

上传人:大米 文档编号:496752598 上传时间:2023-09-10 格式:DOCX 页数:14 大小:17.58KB
返回 下载 相关 举报
c++各种数据类型_第1页
第1页 / 共14页
c++各种数据类型_第2页
第2页 / 共14页
c++各种数据类型_第3页
第3页 / 共14页
c++各种数据类型_第4页
第4页 / 共14页
c++各种数据类型_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《c++各种数据类型》由会员分享,可在线阅读,更多相关《c++各种数据类型(14页珍藏版)》请在金锄头文库上搜索。

1、(1) char *转换到 BSTRBSTR b = _com_util:ConvertStringToBSTR(数据”);SysFreeString(bstrValue);(2).BSTR 转换到 char*char *p=_com_util:ConvertBSTRToString(b);delete p;12.typedef 和 typename 要害字这两个要害字在运用的时辰时例会令人迷惑,其实很简单,typedef是类型定义,而typename是类型解释2009年04月20日类型转换是将一种类型的值映射为另一种类型的值进行数据类型的转换 是在实际代码编写中经常遇到的问题,出格是字符串和

2、其它类型的转换 1将字符串转换为整儿(1).转换函数/双精度函数double atof(const char *string);double _wtof(const wchar_t *string);自适应TCHAR: _tstof、 _ttofVS2005: _atof_l、_wtof_l、_atodbl、_atodbl_l/整型函数int atoi(const char *string);_int64 _atoi64(const char *string);int _wtoi(const wchar_t *string);_int64 _ wtoi64(const char *string

3、);自适应TCHAR: _tstoi、 _ttoi、_tstoi64、_ttoi64VS2005: _atoi_l、 _wtoi_l、_atoi64_l、_wtoi64_l长整形函数long atol(const char * string);long _wtol(const wchar_t *string );自适应TCHAR: _tstoi、_ttoiVS2005: _atoi_l、_wtoi_l可参考:http:/.en/s/blog_4135af570100b0d9.ht ml(2).代码参考Cstring ting =1234;int num = atoi(ting);num的值为1

4、234.CString ting = 1234 ;double num = atof(ting);最终结果:num 值为 1234.00000000000002.int转换为字符串cahr *_itoa(int value,char *string,int radix);char *_i64toa(_int64 value,char *string,int radix);char * _ui64toa( unsigned _int64 value, char *string,int radix);wchar_t * _itow(int value,wchar_t *string,int rad

5、ix);wchar_t * _i64tow(_int64 value,wchar_t *string,int radix);wchar_t * _ui64tow( unsigned _int64 value, wchar_t *string,int radix);参数的意义:value是指要转换的整儿,sring是用来存放转换后结果的便当,radix是用来说明转换成几进制的数据,默认值是十进制数的转换的进制范围是二进制到三十六进制示例代码:int iii = 123456789;char ii100;itoa(iii, ii, 10);ii中的结果就是字符串”123456789”int iii

6、 = 12;char ii100;itoa(iii, ii, 2);ii中的结果是字符串”1100”3.long转换为字符串char *toa( long value,char *string, int radix );wchar_t *_ltow( long value, wchar_t *string, int radix );其中,参数value为被转换的值,参数string为字符串缓冲区,radix为进制代码参考:ling l = 100; char temp10;memset(temp,0,10);ltoa(l,temp,10);4.double转换为字符串char *_fcvt(

7、double value, int count, int *dec, int *sign );其中参数value为双精度数,参数count为转换的小数点后面的位数,dec表示小数点 的位置,sign表示符号代码参数如下int decimal, sign;char *buffer;dobule source = 3.1415926535;buffer = _fcbt( source, 7, & decimal, & sign );输出结果:sourec: 3.1415926535; buffer:31415927 decimal: 1 sign:05.日期类型转换为字符串将一日期格式转换为字符串

8、,利用了格式化函数,参考代码如下:CTime ti = Ctime:GetCurrentTime();Cstring strTemp();strTemp = ti.Format(”Y%m%d %H%H%S)6字符串转换为短整型int atoi( const char *string );其中,参数const char *string为要转换的字符串,返回值为转换的结果7字符串转换为长整型long atol(const char * string)8字符串转换为双精度类型double atof(const char* string)代码参考:#includevstdlib.h#includevs

9、tdio.hvoid main( void )char *s; dobule x; int i; long l;s = -2309.12E-15; / 测试 atofx = atof(s);printf( atof test:ASCII string: %stfloat: %en, s , x );s= 7.8912654773d210; / 测试 atofx = atof(s);printf( atof test: ASCII string: %stfloat: %en, s, x);s = -9885 pigs; / 测试 atoii = atoi(s);printf( atoi test

10、:ASCII string:%sttinteger: %dn, s, i);s = 98854 dollars; / 测试 atoll = atol(s);printf( atoi test:ASCII string:%sttlong: %ldn, s, l);输出结果:atof test:ASCII string: -2309.12E-15 float:-2.309120e-012atof test:ASCII string: 7.8912654773d210 float:7.891265E+210atof test:ASCII string: -9885 pigs integer:-988

11、5atof test:ASCII string: 98854 dollars long:988549. char*和CString的相互转换CString饱含了三个值:指向某个数据缓冲区的指针、该缓冲区中有用的字符记数(它是不可存取的,是位于CString地址之下的1个隐藏地区范围)及1个缓冲区长度有用字符数的巨细可所以从0到该缓冲最大长度值减1之间的任何数(因为字符串结尾 有1个灭茬字符)(1) char* 转换为 CString直接赋值利用格式化转换CString strConvert;TCHAR* P = _T(this is a chTostring test );strConvert

12、 = p; / 直接赋值strConvert.Format(%s,p); / 格式化(2) CString 转换为 char*强制类型转换为LPCTSTRCString theString(_T(Char test );LPTSTR lpsz = (LPTSTR) (LPCTSTR)theString;使用 strcpyCString theString( (_T(Char test );LPTSTR lpsz = new TCHARtheString.GetLength()+1;_tcscopy(lpsz, theSting);需要说明的是,strcpy (或可移植的_tcscpy)的第二参

13、数是const wcahr_t*(Unicode)或const char*(ANSI),系统编译器将会自己主动对其进行转换使用GetBuffer要是需要修改CString中的内部实质意义,它有1个特殊的方法可以使用,哪就是GetBuffer,它的作用是返回1个可写的缓冲指针要是只是筹算修改字符或者截短字符串,例如:CString s(_T(Char test );LPTSTR p = s.GetBuffer();/添加P的代码s.ReleaseBuffer() /使用完后实时开释lO.CString与BSTR的相互转换(1) .CString 转换为 BSTR挪用CString对象的Alloc

14、SysString方法将CString转化成BSTR,如: CString str = this is a test ;BSTR b = str.AllosysString();str.FreeSystring(); /最后不要忘记了开释(2) .BSTR 转换为 CStringCString convert(BSTR b)CString s;if(b =灭茬)return s;#ifdef UNICODEs = b;#elseLPSTR p = s.GetBuffer( SYsStringLen(b) + 1);:WidecharToMultiByte(CP_ACP,0,b,-1,P,SysStringLen(b)+l,灭茬,灭茬);s.ReleaseBuffer();#endifreturn s;11. BSTR、_bstr_t 与 CComBSTR 的关系CComBSTR 是 ATL 对 BSTR 的封装,_bstr_t 是 C+对 BSTR 的封装,BSTR是32位指针,但并不是直接指向字符串的缓冲区(l)typedef 要害字类型说明给已经存在的数据类型起1个体号,定义名字表示这个类型的新名字 类型说明的格式为typedef类型定义名;例如,用下面语句定义整型数的新名字:typedef int INT_COUNT; /可读

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号