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

  短整型(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. iptables----sport、dport解释

    以前一直对iptables的sport.dport不清楚,所以这里记录一下. (1)清理防火墙: iptables -F iptables -X iptables -Z (2)iptables命令选项 ...

  2. MQ Cannot convert from [[B] to [] for GenericMessage

    MQ消费端转换报错:主要错误信息:Caused by: org.springframework.messaging.converter.MessageConversionException: Cann ...

  3. [TJOI2019]甲苯先生的字符串——矩阵乘法+递推

    题目链接: [TJOI2019]甲苯先生的字符串 我们用一个$26*26$的$01$矩阵记录任意两个字符是否能相邻. 设$f[i][j]$表示处理完前$i$个字符,第$i$个字符为$j$的方案数. 可 ...

  4. lucene正向索引(续)——一个文档的所有filed+value都在fdt文件中!!!

    4.1.3. 域(Field)的数据信息(.fdt,.fdx) 域数据文件(fdt): 真正保存存储域(stored field)信息的是fdt文件 在一个段(segment)中总共有segment ...

  5. 迭代器Iterator、for循环遍历、泛型

    java.util.Collection接口 是集合的最顶层的接口,定义了集合共性的方法 接口无法直接创建对象,使用多态的方式创建对象 Collection<集合中的数据类型(泛型)> c ...

  6. PYNQ系列学习(二)——pynq与zynq对比(一)

    Zynq可扩展处理平台是赛灵思新一代 FPGA的可编程技术的产品系列.与采用嵌入式处理器的FPGA不同,Zynq产品系列的处理系统不仅能在开机时启动,而且还可根据需要配置可编程逻辑.采用这种方法,软件 ...

  7. ISO/IEC 9899:2011 条款6.4.1——关键字

    6.4.1 关键字 语法 1.以下为关键字: auto    break    case    char    const    continue    default    do    double ...

  8. js实现文本框支持加减运算的方法

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/T ...

  9. Hibernate 自动更新表出错 建表或添加列,提示标识符无效

    如Oracle 数据库下报错: create table db_meta_web.user (id varchar2(255 char) not null, account varchar2(255 ...

  10. oracle库两个表关联查询时用 count 报错【我】

    oracle数据库,需要对两个表进行关联查询(根据两个字段),结果发现关联后不能改为 count 获取数量,报错如下: 同样的sql换到另外一个数据库就可以(只是因为数据量在千万级,所以很慢,用时40 ...