C++에서 snprintf()는 무엇입니까

C Eseo Snprintf Neun Mueos Ibnikka



C++는 프로그래머에게 여러 가지 이점을 제공하는 일반적으로 사용되는 프로그래밍 언어입니다. 여기에는 다양한 용도로 활용할 수 있는 다양한 내장 기능이 포함되어 있습니다. 그 함수 중에 라는 함수가 있습니다. 스프린트() , 사람들이 거의 알지 못합니다.

이 문서에서는 구문, 매개 변수, 반환 값 및 작업에 대해 설명합니다. snprintf() C++의 함수. 에 대한 완전한 이해를 찾을 수 있습니다. snprintf() 이 안내서에서.

C++에서 snprintf()는 무엇입니까

C++에서는 snprintf() 버퍼에 기록된 일련의 문자 및 문자열 값을 형식화하거나 저장하는 데 사용되는 함수입니다. 그것은 유사하게 작동합니다 스프린트프() 기능을 제공하지만 버퍼 오버플로를 극복하는 기능이 있습니다. 그만큼 헤더 파일에는 스프린트() 함수이며 프로그램에서 함수를 사용하려면 선언해야 합니다. 그만큼 snprintf() 함수는 버퍼가 가질 수 있는 최대 내용을 지정합니다.







아래 주어진 구문은 사용할 구문입니다. snprintf() C++의 함수:



snprintf ( * 완충기, size_t buf_size, const * 형식, ... ) ;

문자가 작성되면 끝 널 문자가 삽입됩니다. MAX_BUFSIZE가 0이면 아무것도 저장되지 않고 버퍼가 널 포인터로 작동할 수 있습니다.



snprintf()의 매개변수

다음은 에서 사용되는 매개변수입니다. snprintf() 기능.





  • 완충기 : 출력이 기록될 문자열 버퍼에 대한 포인터입니다.
  • buf_size : MAX_BUFSIZE-1은 버퍼에 쓸 수 있는 최대 문자 수입니다.
  • 체재 : null로 끝나는 문자열이 파일 스트림에 포인터로 기록되었습니다. 문자와 %로 시작하는 가능한 형식 지정자로 구성됩니다. 형식 문자열을 따르는 변수의 값은 형식 지정자를 대체합니다.
  • (추가 인수) : 형식 문자열의 유형에 따라 함수는 문자열 형식에서 형식 지정자를 대체하는 데 사용되는 값(또는 MAX_BUFSIZE의 경우 저장 위치에 대한 포인터)을 포함하는 추가 인수 목록을 예상할 수 있습니다. .

최소한 형식 지정자 값만큼의 매개변수가 있어야 합니다. 이 함수는 추가 인수를 무시합니다.

snprintf()가 반환하는 것

함수가 성공하면 종료 null 문자를 제외하고 적절하게 큰 버퍼에 대해 기록된 것으로 간주되는 문자 수를 반환합니다. 실패하면 음수 값을 반환합니다. 반환된 값이 음수가 아니고 MAX_BUFSIZE보다 작은 경우에만 출력이 완전히 작성된 것으로 간주됩니다.



C++에서 snprintf()를 사용하는 방법

다음은 C++에서 snprintf()를 사용하는 예입니다.

#include
#include
사용 네임스페이스 성병 ;
정수 기본 ( )
{
buff_size [ 60 ] ;
정수 return_Value, MAX_BUFSIZE = 60 ;
str [ ] = '리눅스' ;
정수 조항 = 넷 다섯 ;
반환_값 = snprintf ( buff_size, MAX_BUFSIZE, '안녕하세요 %s 사용자 여러분, bash에 대한 %d개의 기사를 읽어봅시다' ,str, 기사 ) ;
만약에 ( 반환_값 > 0 && 반환_값 < MAX_BUFSIZE )
{
쿠우트 << buff_size << ;
쿠우트 << '작성된 문자 수 = ' << 반환_값 << ;
}
또 다른
쿠우트 << '버퍼에 쓰기 오류' << ;
반품 0 ;
}

위의 코드에서 버퍼의 최대 크기를 60으로 설정했습니다. 이는 코드가 60개 이하의 문자를 허용함을 의미합니다. snprintf() 함수를 사용하여 56자의 문자열을 출력하고 출력 터미널에 표시합니다. 입력한 문자가 60자 이상이면 오류가 발생합니다.

결론

프로토타입, 매개변수, 반환 값 및 C++의 작동을 시연했습니다. snprintf() 형식화된 문자열을 문자열 버퍼에 쓰는 함수입니다. 우리는 에 대한 완전한 이해와 함께 예를 설명했습니다. snprintf() 이 안내서에서.