- 1、本文档共4页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据类型间相互转换
#include ? stdlib.h ? ? ? ? int=atoi(Cstring) ? ? ? ? ? ? ? ? ----------- ? ? 刚接触VC编程的朋友往往对许多数据类型的转换感到迷惑不解,本文将介绍一些常用数据类型的使用。 ? ? ? ? ? 我们先定义一些常见类型变量借以说明 ? ? ? ? ? int ? i ? = ? 100; ? ? ? long ? l ? = ? 2001; ? ? ? float ? f=300.2; ? ? ? double ? d=12345.119; ? ? ? char ? username[]=女侠程佩君; ? ? ? char ? temp[200]; ? ? ? char ? *buf; ? ? ? CString ? str; ? ? ? _variant_t ? v1; ? ? ? _bstr_t ? v2; ? ? ? ? ? 一、其它数据类型转换为字符串 ? ? ? ? ? ? ? 短整型(int) ? ? ? itoa(i,temp,10);///将i转换为字符串放入temp中,最后一个数字表示十进制 ? ? ? itoa(i,temp,2); ? ///按二进制方式转换 ? ? ? 长整型(long) ? ? ? ltoa(l,temp,10); ? ? ? ? ? ? ? 二、从其它包含字符串的变量中获取指向该字符串的指针 ? ? ? ? ? ? ? CString变量 ? ? ? str ? = ? 2008北京奥运; ? ? ? buf ? = ? (LPSTR)(LPCTSTR)str; ? ? ? BSTR类型的_variant_t变量 ? ? ? v1 ? = ? (_bstr_t)程序员; ? ? ? buf ? = ? _com_util::ConvertBSTRToString((_bstr_t)v1); ? ? ? ? ? 三、字符串转换为其它数据类型 ? ? ? strcpy(temp,123); ? ? ? ? ? 短整型(int) ? ? ? i ? = ? atoi(temp); ? ? ? 长整型(long) ? ? ? l ? = ? atol(temp); ? ? ? 浮点(double) ? ? ? d ? = ? atof(temp); ? ? ? ? ? 四、其它数据类型转换到CString ? ? ? 使用CString的成员函数FORMat来转换,例如: ? ? ? ? ? ? ? 整数(int) ? ? ? str.FORMat(%d,i); ? ? ? 浮点数(float) ? ? ? str.FORMat(%f,i); ? ? ? 字符串指针(char ? *)等已经被CString构造函数支持的数据类型可以直接赋值 ? ? ? str ? = ? username; ? ? ? ? ? 五、BSTR、_bstr_t与CComBSTR ? ? ? ? ? ? ? CComBSTR、_bstr_t是对BSTR的封装,BSTR是指向字符串的32位指针。 ? ? ? char ? *转换到BSTR可以这样: ? BSTR ? b=_com_util::ConvertStringToBSTR(数据);///使用前需要加上头文件comutil.h ? ? ? 反之可以使用char ? *p=_com_util::ConvertBSTRToString(b); ? ? ? ? ? ? ? 六、VARIANT ? 、_variant_t ? 与 ? COleVariant ? ? ? ? ? ? ? VARIANT的结构可以参考头文件VC98\Include\OAIDL.H中关于结构体tagVARIANT的定义。 ? ? ? 对于VARIANT变量的赋值:首先给vt成员赋值,指明数据类型,再对联合结构中相同数据类型的变量赋值,举个例子: ? ? ? VARIANT ? va; ? ? ? int ? a=2001; ? ? ? va.vt=VT_I4;///指明整型数据 ? ? ? va.lVal=a; ? ///赋值 ? ? ? ? ? 对于不马上赋值的VARIANT,最好先用Void ? VariantInit(VARIANTARG ? FAR* ? pvarg);进行初始化,其本质是将vt设置为VT_EMPTY,下表我们列举vt与常用数据的对应关系: ? ? ? ? ? unsigned ? char ? bVal; ? VT_UI1 ?
文档评论(0)