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

  短整型(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. (7)打造简单OS-加载内核

    一.简要说明 我们在第五讲[(5)打造简单OS-进入保护模式]中的mbr.S 汇编文件有段这样的代码 mov eax, 0x2 ; 起始扇区lba地址,从间隔第二个扇区开始 mov bx, 0x900 ...

  2. 修改rabbitmq web-UI端口号

    一.拷贝配置文件 [root@test03 ~]# cd /usr/share/doc/rabbitmq-server-3.6.15/ [root@test03 rabbitmq-server-3.6 ...

  3. create an oauth app

    github可以对自己的服务进行oauth认证,创建oauth认证的方式如下: github -> Settings -> Developer settings -> Develop ...

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

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

  5. qt mvc2

    继续上次的例子,对于list才说只有行,讨论列是没有意义的. bool insertRows(int row, int count, const QModelIndex &parent); b ...

  6. TynSerial类介绍

    TynSerial类介绍 TynSerial是咏南中间件封装的,支持数据二进制序列(还原)的类. 支持WINDOWS.LINUX.MAC.IOS.ANDROID. 支持D6及以上版本. 支持TCP/H ...

  7. STM32F429中LTDC的DMA2D加速

    液晶屏的时序问题?每个液晶屏的时序都不一样,但总体上是类似的.如下图: VDEN:    数据使能信号.HSYNC:     每一行扫描的起始点, 在扫描过程中, 不会管上一行扫描有没有结束, 当出现 ...

  8. vuecli3集成easyui

    思路是这样的,首先要将jquery设置成全局,然后就可以正常使用easyUI了. jquery安装命令: npm install --save jquery jquery-easyui安装命令: np ...

  9. 阶段5 3.微服务项目【学成在线】_day16 Spring Security Oauth2_05-SpringSecurityOauth2研究-搭建认证服务器

    3 Spring Security Oauth2研究 3.1 目标 本项目认证服务基于Spring Security Oauth2进行构建,并在其基础上作了一些扩展,采用JWT令牌机制,并自定 义了用 ...

  10. Mysql主从复制(重置版)

    MySQL Replication是Mysql自带的一种功能,可以实现将数据从一台数据库服务器(master)复制到一台或多台数据库服务器(slave),默认情况下属于异步复制,无需维持长连接.通过配 ...