相比于C#,C++的类型转换更为麻烦。下面列举几种主要的类型转换,当然转换的方法有很多,以下可能是最简单、有效的方式了,以后在工作和学习中再逐渐添加其他的类型转换。

CString转char*

    CString file=GetFilePath()+"parameter.txt";
    char* pszFileName=(LPSTR)(LPCTSTR)file;

string转CString

    string str;

    CString ss = str.c_str();

int转CString

    CString str;

    int num=0;
    str.Format(_T("%d"),num);

 

char*转string:

  char* filechar;

   string file_str=file_char;

 

string转char*,const char* :

string file_str;

char* file_char = (char*)file_str.c_str();//转const char* 不要(char *)

 

int转string:

int Num_int;

std::stringstream ssNum;
std::string strNum;
ssNum<<Num_int;
ssNum>>strNum;

 

 

 

char*与System::String^的相互转换(C++互调c#时用到)

#include "stdafx.h" 
using namespace System; //这个命名空间如果缺的话,IntPtr这个无法识别
int main(array<System::String ^> ^args) 

  char* ch1 = "this is chars ";

  //将char*转换为System::String^
  String^ str1= System::Runtime::InteropServices::Marshal::PtrToStringAnsi((IntPtr)ch1);

  //System::String^转换为char*

  char* ch2 = (char*)(void*)System::Runtime::InteropServices::Marshal::StringToHGlobalAnsi(str1); 
  Console::WriteLine(str1);

  Console::WriteLine(ch2); 
  Console::ReadLine(); 

posted on 2014-07-19 16:49  梅罗  阅读(288)  评论(0编辑  收藏  举报