VC++ 형변환 할때


프로그램을 작성하다 보면 데이터형을 변환하는 함수가 필요할 때가 많죠. 이것저것 필요할 때마다 가져다 쓰세요.

1. CString -> double

#include "stdlib.h" // atof() 사용을 위해

// CString형을 double형으로 변환
double CString2double(CString str)
{
        char *Temp = (LPSTR)(LPCSTR)str;
        return atof(Temp);
}

2. double -> CString

// double형을 CString형으로 변환
CString double2CString(double num)
{
        CString Temp;
        Temp.Format("%f", num);
        return Temp;
}

3. CString -> char*

// CString형을 char* 형으로 바꾸는 함수
char *CString2char(CString str)
{
        char *charTemp = (LPSTR)(LPCSTR)str;
        return charTemp;
}

4. int -> char *

Visual C++ 에는 다음과 같은 함수가 있습니다. int , __int64 , unsigned __int64 등의 데이터형을 char* 형으로 바꾸어주는 함수들입니다.

인자에 대해 설명하자면 int value 는 입력값, char *string 은 출력값, int radix 는 출력될 진법을 표시합니다. 예를 들어 radix를 16으로 설정하면 16진수로 출력한다는 말이죠. radix 값은 2~36 사이의 값만 가능합니다.

#include "stdlib.h"

char *_itoa( int value, char *string, int radix );

char *_i64toa( __int64 value, char *string, int radix );

char * _ui64toa( unsigned __int64 value, char *string, int radix );

wchar_t * _itow( int value, wchar_t *string, int radix );

wchar_t * _i64tow( __int64 value, wchar_t *string, int radix );

wchar_t * _ui64tow( unsigned __int64 value, wchar_t *string, int radix );

 

5. char* -> double

#include "stdlib.h"

// char* 형을 double 형으로 바꾸는 함수
double atof( const char *string );

 

6. char* -> int

#include "stdlib.h"

// char* 형을 int 형으로 바꾸는 함수
int atoi( const char *string );

 

7. char* -> __int64

#include "stdlib.h"

// char* 형을 __int64 형으로 바꾸는 함수
__int64 _atoi64( const char *string );

 

8. char* -> long

#include "stdlib.h"

// char* 형을 long 형으로 바꾸는 함수
long atol( const char *string );