您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > MFC常见数据类型转换
1.CTime--〉CStringCTimet;t=CTime::GetCurrentTime();CStringsur;sur.Format(%s,t.Format(%Y-%m-%d));MessageBox(sur);2.long--CStringlonga;CStringb;b.format(%ld,a);3.double---CStringdoublea;CStringb;b.format(%f,a);4.CString--〉CTimeCStringsur;sur=2006-08-09;COleDateTimetime1;time1.ParseDateTime(sur);SYSTEMTIMEsystime;VariantTimeToSystemTime(time1,&systime);CTimetm(systime);m_time=tm;UpdateData(false);5.CString和int,float之间的转换。5.1int-CString1)int-CStringintn=1;CStringstr;str.Format(%d,n);2)CString-intCStringstr=1;intn=atoi(str.GetBuffer(0));5.2char*与CString1)char*-CStringcharsz[128];CStringstr;str.Format(%s,sz);2)CString-char*CStringstr;intnLength=str.GetLength();char*sz=newchar[nLength];sz=str.GetBuffer(0);5.3float-CString1)float-CStringfloatf=0.0;CStringstr;str.Format(%f,f);2)CString-floatCStringstr=0.0;floatf=atof(str.GetBuffer(0));Format函数第一个参数是要转的那个数的类型我现在的程序是inta=21;doubleb=3.45;CStringstr;str.Format(%03d%02.4f,a,b);现在得到的结果是0213.4500%02.4f对b的整数部分不起作用我想要得到一个形如aaabb.bbbb的字符串(02103.4500),如果a不足3位,用0补齐,如果b的整数和小数不足2位和4位也要用0补齐CString::Format(%d,xx);其中xx不能为双精度,不然会转化错误,应该使用CString::Format(%d,(LONG)xx);例:DOUBLEd=22.443;CStringstr;str.Format(%d,d);转化后的str=1924145349,这是错误的!1、CStringtochar*经过类型强制转换,可以将CString类型转换成char*,例如:CStringcStr=Hello,world!;char*zStr=(char*)(LPCTSTR)cStr;2、char*toCStringchar*类型可以直接给CString,完成自动转换,例如:char*zStr=Hello,world!;CStringcStr=zStr;3、CStringtoLPCSTR将CString转换成LPCSTR,需要获得CString的长度,例如:CStringcStr=_T(Hello,world!);intnLen=cStr.GetLength();LPCSTRlpszBuf=cStr.GetBuffer(nLen);4、CStringtoLPSTR这个和第3个技巧是一样的,例如:CStringcStr=_T(Hello,world!);intnLen=str.GetLength();LPSTRlpszBuf=str.GetBuffer(nLen);5、Char[]toint将字符串类型转换成整数型,可以使用atoi函数,例如:charc[10];intn;n=atoi©;6、Char[]tofloat和第5个技巧一样,使用atof()函数可以转换成float型,例如:charc[10];floatf;f=atof©;7、Char*toint和第5个技巧完全一样,例如:char*str=100;inti;i=atoi(str);一、其它数据类型转换为字符串短整型(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;
本文标题:MFC常见数据类型转换
链接地址:https://www.777doc.com/doc-4255936 .html