一、其他数据类型转换为字符串  

  短整型(int)

  itoa(i,temp,10);///将i转换为字符串放入temp中,最后一个数便是十进制

  itoa(i,temp,2);///按二进制方式转换

  长整型(long)

  Iota(I,temp,10);

  浮点数(float,doule)

  用fcvt可以完成转换,这是MSDN中的例子:

  int decimal,sign;

  char *buffer;

  decimal source = 3.1415926535;

  buffer = _fcvt(source,7,&decimal,&sign);

  运行结果:double source = 3.1415926535 buffer:'3.1415927' decimal:1 sign:0

  decimal表示小数点的位置,sign表示符号:0为正数,1为负数

  CString变量

  str=“2008北京奥运”;

  buf = (LRSTR)(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.415615123f;sprintf(buffer,"%c",c); sprintf(buffer,"%d",i);sprintf(buffer,"%d",j);sprintf(buffer,"%f",f);

二、字符串转换为其他数据类型

  strcpy(temp,“123”);

  短整型(int)

  i = atoi(temp);

  长整形(long)

  I = atoI(temp);

  浮点(double)

  d = atof(temp);

  CString变量

  CString name = temp;

  BSTR变量

  BSTR bstrValue = ::SysAllocString(L"程序员");

  。。。///完成对bstrValue的使用

  SysFreeString(bstrVlaue);

  CComBSTR变量

  CComBSTR变量可以直接赋值

  CComBSTR bstrVar1("test");

  CComBSTR bstrVar2("temp");

  _bstr_t变量

  _bstr_t类型的变量可以直接赋值

  _bstr_t bstrVar1("test");

  _bstr_t bstrVar2(temp);

三、其他数据类型转换到CString

  使用CString的成员函数Format来转换,例如:

  整数(int)

  str.Format(“%d”,i);

  浮点数(float)

  str.Format("%f",i);

  字符串指针(char *)等已经被CString构造函数支持的数据类型可以直接赋值

  str = username;

  对于Format所不支持的数据类型,可以通过上面所说的关于其他数据类型转化到char*的方法先转到char*,然后赋值给变量。

  参考自:https://www.jb51.net/article/117099_all.htm

VC++类型转换的更多相关文章

  1. vc类型转换函数大全

    windows c++中存在各种类型,在实际应用过程中也需要将类型互相转换,故整理了常用类型之间的转换并将之封装成函数,仅供参考,有什么不对的地方,还请指正!   ****************** ...

  2. 【转载】VC++中的图像类型转换--使用开源CxImage类库

    一.CxImage类库简介 这只是翻译了CxImage开源项目主页上的部分简介及简单使用. CxImage类库是一个优秀的图像操作类库.它可以快捷地存取.显示.转换各种图像.有的读者可能说,有那么多优 ...

  3. VC++中的CString、char、int类型转换

    1.如何将CString类型的变量赋给char*类型的变量   方法一:GetBuffer函数  使用CString::GetBuffer函数.  char *p;  CString str=&quo ...

  4. 当C++多继承遇上类型转换[转]

      1 由来 客户用陈旧的VC++6.0进行项目开发,有一块功能需要我来实现.让一个早就习惯了VS2013的人去使用C++支持不太好的VC6去做开发实在是非常不爽,于是另辟蹊径,打算使用VC++201 ...

  5. 用VC进行COM编程所必须掌握的理论知识

    一.为什么要用COM 软件工程发展到今天,从一开始的结构化编程,到面向对象编程,再到现在的COM编程,目标只有一个,就是希望软件能象积方块一样是累起来的,是组装起来的,而不是一点点编出来的.结构化编程 ...

  6. 【应用笔记】【AN003】VC++环境下基于以太网的4-20mA电流采集

    简介 4-20mA电流环具有广泛的应用前景,在许多行业中都发挥着重要作用.本文主要介绍了以太网接口的4-20mA电流采集模块在VC++环境下进行温度采集,实现WINDOWS平台对数据的采集.分析及显示 ...

  7. 关于强制类型转换(c语言)

    因为今天看的代码中用到了结构体的强制类型转换,就很想了解一下结构体的强制类型转换是怎样的. 一个结构体如下: 在下面这段代码中rbuf->reqCmdBuf是一个空指针,首先将这个空指针赋值给一 ...

  8. VC操作ADO的基本策略

    一.ADO概述 ADO是Microsoft为最新和最强大的数据访问范例 OLE DB 而设计的,是一个便于使用的应用程序层接口.ADO 使您能够编写应用程序以通过 OLE. DB 提供者访问和操作数据 ...

  9. 有关C++ std::string 类的类型转换 其他语言永远无法理解的伤

    最近做了个项目,C++的MFC窗口程序,一个基于dialog的学生-图书管理系统,有一些感触,最后会放上一些项目截图和部分代码提供大家参考.如果有什么好方法和建议欢迎指导. 强类型,为什么这么伤 我知 ...

随机推荐

  1. CF1174B Ehab Is an Odd Person(排序+结论)

    做法 一个显然的结论就是如果至少有一个奇数和一个偶数,那么是可以随意调整的,也就是升序排序 否则不可以进行任何操作 Code #include<bits/stdc++.h> using n ...

  2. 怎么在for循环中新建出不同的list

    public static void main(String[] args) { List<Integer> list = Arrays.asList(1, 1, 1, 1, 1, 3, ...

  3. 实现一个简单的Tomcat

    实现一个简单的Tomcat 1. Tomcat作用 我们的web应用会运行在Tomcat中,那么显然请求必定是先到达Tomcat的,Tomcat对于请求实际上会进行如下的处理: 提供Socket服务: ...

  4. Java 面向对象(十二)

    泛型 什么是泛型 泛型:广泛通用的类型 一开始还不确定是什么类型,在使用的时候,才能确定是什么类型 (1)在开始定义的时候,留一个插口 (2)在创建对象的时候,再去插入对应的类型 泛型也可以理解为&q ...

  5. css 百分比减去像素

    1)第一种实现方式 @body_center_width: ~`$(document).width()-400+'px'`; #helloworld { width: @body_center_wid ...

  6. androidStudio: ERROR: Error occurred while communicating with CMake server.

    遇到此错误的原因是cmake服务器协议版本不匹配: 解决方案: 1:直接更新android studio看能否解决: 2:如果解决不了,那么将androidstudio,ndk ,cmake,grad ...

  7. 一个漂亮的输出MySql数据库表结构的PHP页面

    经常为了方便和直观,我们会首先直接在数据库中设计出表,但是接下来又要将表的结构和设计编写在设计文档中,以便编码的时候可以直观的查询,一旦数据库表非常多,字段非常多的时候,这无疑是件非常郁闷的工作. 这 ...

  8. C/C++程序所占用内存区域

    C/C++编译的程序所占用内存区域一般分为以下5个部分: 栈区(stack):由编译器自动分配和释放,用来存放函数的参数.局部变量等.其操作方式类似于数据结构中的栈. 堆区(heap):一般由程序员分 ...

  9. python中 将数字转化为人民币的形式

    def fn(args): """ 将金额转化为人民币模式,带逗号分隔,保留小数点两位,四舍五入 :param args: :return: ""&q ...

  10. Struts 2 --ONGL介绍

    先了解一下OGNL的概念 OGNL的全名称Object Graph Navigation Language.全称为对象图导航语言,是一种表达式语言.使用这种表达式语言,你可以通过某种表达式语法,存取J ...