2014-08-30 3 views
1

소수점 구분 기호가 "."인 std :: string에서 부동 소수점 값을 구문 분석하려고합니다. 구분 기호가 ","인 로케일에서 이러한 부동 소수점을 구문 분석하려면 어떻게합니까? std :: stringstream 사용하고 있습니다. 명확하게하기 : 문자열 스트림으로 en-US 스타일의 float 구문 분석을 강제로 수행하려면 어떻게해야합니까? 다른 로케일의 문자열에서 float 구문 분석

setlocale(LC_NUMERIC, "C"); 

또는 단일 스트림에 대한

가 :

+0

C++ 11을 사용할 수 있습니까? 또한,','또는'.'를 구분자로 사용하여 부동 소수점을 구문 분석하거나 두 가지 모두를 모두 구문 분석하고 싶습니까? 당신이 두 가지 다른 것을 말한 것처럼 보였습니다 ... – therealrootuser

+0

저는 C++ 11을 사용하고 있습니다. 플로트 문자열은 "."만을 포함하고 있습니다. – SurvivalMachine

+0

아, 그래서 당신의 지역은 일반적으로','분리 기호를 사용합니다. 그러나 이제 쉼표 이외에'.' 분리 문자를 처리 할 수 ​​있어야합니다. – therealrootuser

답변

0

당신은 기본 "C"하나 전체 프로그램이 방법 로케일을 설정할 수 있습니다

std::locale c_locale("C"); 
my_stream.imbue(c_locale); 

이 당신을 줄 것이다 "오래된 학교 , "non-i18n 구문 분석 및 인쇄. 다른 로케일 이름도 시도해 볼 수 있지만, 모든 시스템에서 사용할 수 있도록 보장 된 두 개의 ""및 "C"는 사용자의 경우에 적합합니다.

관련 문제