wprintf 예제

wprintf는 printf 형식의 광범위한 문자 버전입니다. 형식은 anSI 모드에서 열리는 것과 마찬가지로 wprintf 및 printf bahave가 있는 넓은 문자 문자열입니다. 다음은 wprintf의 작동을 이해하기 위한 샘플 코드입니다. 형식 인수는 일반 문자, 이스케이프 시퀀스 및 (인수가 형식을 따르는 경우) 형식 사양으로 구성됩니다. 일반 문자와 이스케이프 시퀀스는 모양의 순서대로 stdout에 복사됩니다. 예를 들어, 선: swprintf() 및 vswprintf() 최대 인수를, 스프린트프(3) 및 vsprintf(3)는 하지 않습니다. (snprintf(3) 및 vsnprintf(3)는 maxlen 인수를 취하지만 이러한 함수는 Linux에서 버퍼 오버플로시 -1을 반환하지 않습니다.) wprintf()는 표준 출력 스트림인 stdout에 출력을 씁니다. 변수 인수 목록을 사용합니다. 이 함수와 vprintf, vsprintf, vsnprintf 및 vasprintf와 같은 기능은 프로그래머가 본질적으로 고유한 printf 변형을 만들 수 있는 기능을 제공합니다. swprintf_s와 달리 swprintf_s는 대부분의 경계가 확인된 함수에서 트렁킹이 오류로 처리되더라도 버퍼가 가리키는 배열 내에 맞게 결과를 잘립니다.

wprintf 함수는 형식 문자열을 제어하여 스트림에 출력을 쓰는 C에서 찾을 수 있습니다. 형식 문자열은 후속 인수를 출력에 대해 변환하는 방법을 지정합니다. wprintf() 및 vwprintf(vwprintf)의 함수는 스트아웃에 대한 와이드 문자 출력을 수행합니다. stdout은 바이트 지향이 아니어야 합니다. 자세한 내용은 fwide(3)를 참조하십시오. wprintf는 wchar.h에 정의된 C 표준 라이브러리 함수입니다. 제한으로 기능 서명이 있습니다 : 1. wprintf() 휴대용 기능이 아닙니다.

2. wprintf()는 printf()와 혼합할 수 없습니다. 3. wprintf는 이중 값을 인쇄할 수 없습니다. 좁은 문자열은 필요한 출력 버퍼 크기를 결정할 수 있는 snprintf를 제공하지만 넓은 문자열(C11의 snwprintf_s까지)에 해당되지 않으며 버퍼 크기를 결정하기 위해 프로그램에서 swprintf를 호출해야 할 수 있습니다. 결과 값을 다시 할당하고 성공할 때까지 다시 시도합니다. wprintf() 함수 제품군은 printf(3) 함수 제품군과 동일한 와이드 문자입니다. 와이드 문자의 형식이 지정된 출력을 수행합니다. 함수swprintf() 및 vswprintf()의 경우 종료 null 와이드 문자를 제외한 함수는 작성된 와이드 문자 수를 반환합니다. 오류가 발생하면 -1을 반환합니다. e 변환 스타일 [-]d.ddde±dd가 사용됩니다. E 변환 스타일 [-]d.dddE±dd가 사용됩니다.

지수는 두 자리 이상을 포함하며 필요한 경우에만 더 많은 숫자가 사용됩니다. 값이 0이면 지수도 0입니다. 정밀도는 소수점 문자 옆에 나타날 최소 자릿수를 지정합니다. 기본 정밀도는 6입니다. 대체 구현에서 소수점 문자는 숫자를 따르지 않더라도 작성됩니다. 무한대 및 숫자가 아닌 변환 스타일은 메모를 참조하십시오. 후행 영점을 요청하지 않는 한 소수점 문자도 제거됩니다. 무한대 및 숫자가 아닌 변환 스타일은 메모를 참조하십시오.

변환 사양이 잘못되면 동작이 정의되지 않습니다. . 형식 문자열에 ASCII 와이드 문자가 포함되어 있는 경우 런타임시 현재 로캘의 LC_CTYPE 범주가 컴파일 타임의 현재 로캘의 LC_CTYPE 범주와 동일한 경우에만 프로그램이 올바르게 작동합니다. 이는 wchar_t 표현이 플랫폼 및 로캘에 종속되어 있기 때문입니다. (glibc는 유니코드(ISO-10646) 코드 포인트를 사용하여 넓은 문자를 나타내지만 다른 플랫폼에서는 이 작업을 수행하지 않습니다. 또한 unnn 형식의 C99 범용 문자 이름을 사용하면 이 문제가 해결되지 않습니다.) 따라서 국제화된 프로그램에서 형식 문자열은 ASCII 와이드 문자로만 구성되거나 국제화된 방식으로 런타임에 생성되어야 합니다(예: gettext(3) 또는 iconv(3) 다음에 mbstowcs(3))가 뒤따릅니다.

    Outros serviços