_gcvt_s
부동 소수점 값을 문자열로 변환합니다. 이 함수는 CRT의 _gcvt
보안 기능에 설명된 대로 보안 기능이 향상된 버전입니다.
구문
errno_t _gcvt_s(
char *buffer,
size_t sizeInBytes,
double value,
int digits
);
template <size_t cchStr>
errno_t _gcvt_s(
char (&buffer)[cchStr],
double value,
int digits
); // C++ only
매개 변수
buffer
변환 결과를 저장할 버퍼입니다.
sizeInBytes
버퍼의 크기입니다.
value
변환할 값입니다.
digits
저장된 유효 자릿수입니다.
반환 값
정상적으로 실행되는 경우 0입니다. 잘못된 매개 변수로 인해 오류가 발생하는 경우(잘못된 값은 다음 표 참조) 매개 변수 유효성 검사에 설명된 대로 잘못된 매개 변수 처리기가 호출됩니다. 계속 실행하도록 허용된 경우 오류 코드가 반환됩니다. 오류 코드는 Errno.h에서 정의됩니다. 이러한 오류 목록은 , , 및 를 참조하세요errno
. _sys_errlist
_sys_nerr
_doserrno
오류 조건
buffer |
sizeInBytes |
value |
digits |
반환 값 | buffer 의 값 |
---|---|---|---|---|---|
NULL |
any | any | any | EINVAL |
수정되지 않습니다. |
NULL 아님(유효한 메모리를 가리킴) |
zero | any | any | EINVAL |
수정되지 않습니다. |
NULL 아님(유효한 메모리를 가리킴) |
any | any | >= sizeInBytes |
EINVAL |
수정되지 않습니다. |
보안 문제
_gcvt_s
는 유효한 메모리NULL
를 가리키지 않고 그렇지 않은 경우 buffer
액세스 위반을 생성할 수 있습니다.
설명
_gcvt_s
함수는 부동 소수점 value
를 문자열(소수점 및 가능한 부호 바이트를 포함함)로 변환하고 문자열을 buffer
에 저장합니다. buffer
는 변환된 값과 자동으로 추가되는 null 종결 문자를 포함할 만큼 충분히 커야 합니다. 모든 부동 소수점 값에는 _CVTBUFSIZE
길이의 버퍼로 충분합니다. + 1의 digits
버퍼 크기를 사용하는 경우 함수는 버퍼의 끝을 덮어쓰지 않으므로 이 작업에 충분한 버퍼를 제공해야 합니다. _gcvt_s
는 digits
숫자를 10진수 형식으로 생성하려고 합니다. 그렇게 할 수 없는 경우 지수 형식으로 숫자를 생성합니다 digits
. 변환 시 뒤에 오는 0을 표시하지 않을 수 있습니다.
C++에서는 템플릿 오버로드로 인해 이 함수를 사용하는 것이 보다 간단해 집니다. 오버로드는 버퍼 길이를 자동으로 유추할 수 있으므로 크기 인수를 지정할 필요가 없습니다. 자세한 내용은 안전한 템플릿 오버로드를 참조하세요.
이 함수의 디버그 버전은 먼저 버퍼를 0xFE 채웁니다. 이 동작을 사용하지 않도록 설정하려면 .를 사용합니다 _CrtSetDebugFillThreshold
.
기본적으로 이 함수의 전역 상태는 애플리케이션으로 범위가 지정됩니다. 이 동작을 변경하려면 CRT 전역 상태를 참조하세요.
요구 사항
루틴에서 반환된 값 | 필수 헤더 | 선택적 헤더 |
---|---|---|
_gcvt_s |
<stdlib.h> | <error.h> |
호환성에 대한 자세한 내용은 호환성을 참조하세요.
예시
// crt_gcvt_s.c
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
int main()
{
char buf[_CVTBUFSIZE];
int decimal;
int sign;
int err;
err = _gcvt_s(buf, _CVTBUFSIZE, 1.2, 5);
if (err != 0)
{
printf("_gcvt_s failed with error code %d\n", err);
exit(1);
}
printf("Converted value: %s\n", buf);
}
Converted value: 1.2
참고 항목
데이터 변환
수학 및 부동 소수점 지원
atof
, _atof_l
, _wtof
_wtof_l
_ecvt_s
_fcvt_s
_gcvt