문제

어떻게 변환합니까? CString a double C ++에서?

유니 코드 지원도 좋을 것입니다.

감사!

도움이 되었습니까?

해결책

CString An으로 변환 할 수 있습니다 LPCTSTR, 기본적으로 a const char* (const wchar_t* 유니 코드 빌드에서).

이것을 알면 사용할 수 있습니다 atof():

CString thestring("13.37");
double d = atof(thestring).

... 또는 유니 코드 빌드의 경우, _wtof():

CString thestring(L"13.37");
double d = _wtof(thestring).

... 또는 유니 코드 및 비 유니 코드 빌드를 모두 지원하려면 ...

CString thestring(_T("13.37"));
double d = _tstof(thestring).

(_tstof() 어느 쪽이든 확장되는 매크로입니다 atof() 또는 _wtof() 여부에 따라 _UNICODE 정의 됨)

다른 팁

당신은 변환 할 수 있습니다 무엇이든 사용 a std::stringstream. 유일한 요구 사항은 운영자입니다 >> 그리고 << 구현됩니다. StringStreams는에서 찾을 수 있습니다 <sstream> 헤더 파일.

std::stringstream converter;
converter << myString;
converter >> myDouble;

부스트 Lexical_cast 라이브러리를 사용하면됩니다

#include <boost/lexical_cast.hpp>
using namespace boost;

...

double d = lexical_cast<double>(thestring);

strtod (또는 wcstod)는 문자열을 이중 프레임 값으로 변환합니다.

(필요합니다 <stdlib.h> 또는 <wchar.h>)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top