VC常用数据类型转换
星期日, 8月 26th, 2007
一、其它数据类型转换为字符串
- 短整型(int) itoa(i,temp,10);///将i转换为字符串放入temp中,最后一个数字表示十进制 itoa(i,temp,2); ///按二进制方式转换
- 长整型(long) ltoa(l,temp,10);
- 浮点数(float,double) 用fcvt可以完成转换,这是MSDN中的例子: int decimal, sign; char *buffer; double source = 3.1415926535; buffer = _fcvt( source, 7, &decimal, &sign ); 运行结果:source: 3.1415926535 buffer: ‘31415927′ decimal: 1 sign: 0 decimal表示小数点的位置,sign表示符号:0为正数,1为负数
- CString变量 str = "2008北京奥运"; buf = (LPSTR)(LPCTSTR)str;
- BSTR变量 BSTR bstrValue = ::SysAllocString(L"程序员"); char * buf = _com_util::ConvertBSTRToString(bstrValue); SysFreeString(bstrValue); AfxMessageBox(buf); delete(buf);
- CComBSTR变量 CComBSTR bstrVar("test"); char *buf = _com_util::ConvertBSTRToString(bstrVar.m_str); AfxMessageBox(buf); delete(buf);
- _bstr_t变量 _bstr_t类型是对BSTR的封装,因为已经重载了=操作符,所以很容易使用 _bstr_t bstrVar("test"); const char *buf = bstrVar;///不要修改buf中的内容 AfxMessageBox(buf);
- 通用方法(针对非COM数据类型) 用sprintf完成转换
-
- char buffer[200];
- char c = '1';
- int i = 35;
- long j = 1000;
- float f = 1.7320534f;
- sprintf( buffer, "%c",c);
- sprintf( buffer, "%d",i);
- sprintf( buffer, "%d",j);
- sprintf( buffer, "%f",f);