Namespaces
Variants

std:: stof, std:: stod, std:: stold

From cppreference.net
std::basic_string
헤더 파일에 정의됨 <string>
float stof ( const std:: string & str, std:: size_t * pos = nullptr ) ;
(1) (C++11부터)
float stof ( const std:: wstring & str, std:: size_t * pos = nullptr ) ;
(2) (C++11부터)
double stod ( const std:: string & str, std:: size_t * pos = nullptr ) ;
(3) (C++11부터)
double stod ( const std:: wstring & str, std:: size_t * pos = nullptr ) ;
(4) (C++11부터)
long double stold ( const std:: string & str, std:: size_t * pos = nullptr ) ;
(5) (C++11부터)
long double stold ( const std:: wstring & str, std:: size_t * pos = nullptr ) ;
(6) (C++11부터)

문자열 str 에서 부동 소수점 값을 해석합니다.

변환 함수 내부의 포인터 ptr char * (1,3,5) 또는 wchar_t * (2,4,6) 타입으로 설정합니다.

1) std:: strtof ( str. c_str ( ) , & ptr ) 를 호출합니다.
2) std:: wcstof ( str. c_str ( ) , & ptr ) 를 호출합니다.
3) std:: strtod ( str. c_str ( ) , & ptr ) 를 호출합니다.
4) std:: wcstod ( str. c_str ( ) , & ptr ) 를 호출합니다.
5) std:: strtold ( str. c_str ( ) , & ptr ) 를 호출합니다.
6) std:: wcstold ( str. c_str ( ) , & ptr ) 를 호출합니다.

함수는 ( std::isspace 에 의해 결정된) 공백 문자들을 첫 번째 비-공백 문자를 찾을 때까지 버립니다. 그런 다음 유효한 부동 소수점 표현을 형성할 수 있을 때까지 가능한 많은 문자들을 취하여 부동 소수점 값으로 변환합니다. 유효한 부동 소수점 값은 다음 중 하나일 수 있습니다:

  • decimal floating-point expression. 다음과 같은 부분들로 구성됩니다:
  • (선택사항) 플러스 또는 마이너스 부호
  • 현재 C locale 에 의해 결정되는 소수점 문자를 선택적으로 포함하는 비어 있지 않은 십진수 시퀀스 (가수를 정의함)
  • (선택사항) e 또는 E 다음에 선택적인 마이너스 또는 플러스 부호와 비어 있지 않은 십진수 시퀀스가 옴 (밑수 10 에 대한 지수를 정의함)
  • 16진수 부동 소수점 표현식. 다음과 같은 부분들로 구성됩니다:
  • (선택 사항) 플러스 또는 마이너스 부호
  • 0x 또는 0X
  • 현재 C locale 에 의해 결정되는 십진점 문자를 선택적으로 포함하는 16진수 숫자의 비어 있지 않은 시퀀스 (유효 숫자 정의)
  • (선택 사항) p 또는 P 뒤에 선택적인 마이너스 또는 플러스 부호와 10진수 숫자의 비어 있지 않은 시퀀스가 옴 (밑수 2 에 대한 지수 정의)
  • 무한대 표현식. 다음과 같은 부분들로 구성됩니다:
  • (선택적) 양수 또는 음수 부호
  • INF 또는 INFINITY (대소문자 구분 없음)
  • NaN(Not-a-Number) 표현식. 다음과 같은 부분들로 구성됩니다:
  • (선택적) 양수 또는 음수 부호
  • NAN 또는 NAN( char_sequence  ) ( NAN 부분의 대소문자는 무시). char_sequence 는 숫자, 라틴 문자, 밑줄만 포함할 수 있습니다. 결과는 정숙 NaN 부동 소수점 값입니다.
  • 현재 설치된 C locale 에서 허용될 수 있는 다른 모든 표현식.

만약 pos 가 null 포인터가 아니라면, ptr str. c_str ( ) 에서 변환되지 않은 첫 번째 문자의 주소를 받게 되며, 해당 문자의 인덱스가 계산되어 * pos 에 저장되어 변환 과정에서 처리된 문자 수를 나타냅니다.

목차

매개변수

str - 변환할 문자열
pos - 처리된 문자 수를 저장할 정수의 주소

반환값

지정된 부동 소수점 타입으로 변환된 문자열.

예외

std::invalid_argument 변환을 수행할 수 없는 경우.

std::out_of_range 변환된 값이 결과 타입의 범위를 벗어나거나 기본 함수( std::strtof , std::strtod 또는 std::strtold )가 errno ERANGE 로 설정하는 경우.

예제

결함 보고서

다음의 동작 변경 결함 보고서들은 이전에 발표된 C++ 표준에 소급 적용되었습니다.

DR 적용 대상 게시된 동작 올바른 동작
LWG 2009 C++11 std::out_of_range 변환된 값이 결과 타입의 범위를 벗어나는 경우
예외가 발생하지 않음
예외 발생
LWG 2403 C++11 stof std::strtod 또는 std::wcstod 호출 stof std::strtof 또는 std::wcstof 호출

참고 항목

(C++11) (C++11) (C++11)
문자열을 부호 있는 정수로 변환
(함수)
(C++11) (C++11)
문자열을 부호 없는 정수로 변환
(함수)
(C++17)
문자 시퀀스를 정수 또는 부동 소수점 값으로 변환
(함수)