다음을 통해 공유


printf_s, _printf_s_l, wprintf_s, _wprintf_s_l

형식이 지정 된 출력을 표준 출력 스트림에 인쇄 합니다.이러한 버전의 수 printf, _printf_l, wprintf, _wprintf_l 에 설명 된 대로 보안 향상 기능을 CRT의 보안 기능.

int printf_s(
   const char *format [,
   argument]... 
);
int _printf_s_l(
   const char *format,
   locale_t locale [,
   argument]... 
);
int wprintf_s(
   const wchar_t *format [,
   argument]... 
);
int _wprintf_s_l(
   const wchar_t *format,
   locale_t locale [,
   argument]... 
);

매개 변수

  • format
    컨트롤에 서식을 지정 합니다.

  • argument
    선택적 인수입니다.

  • locale
    사용 하는 로캘.

반환 값

오류가 발생 하면 인쇄 문자 또는 음수 값을 반환 합니다.

설명

printf_s 서식을 지정 하 고 일련의 문자 및 값을 표준 출력 스트림에 출력 하는 함수 stdout.인수를 따를 경우는 형식 문자열은 format 문자열 인수에 대한 출력 형식을 결정 하는 사양에 포함 되어야 합니다.

간의 주요 차이점 printf_s 및 printf 는 printf_s 반면의 형식 문자열을 사용할 수 있는 서식 문자를 확인 printf 만 형식 문자열이 널 포인터 인지 여부를 확인 합니다.하나 실패를 확인 하는 경우에 잘못 된 매개 변수 처리기를의 설명에 따라 호출 됩니다 매개 변수 유효성 검사.계속 하려면 함수는-1 반환 하 고 설정 실행이 허용 되는 경우 errno 에 EINVAL.

에 대한 내용은 errno 및 오류 코드를 참조 하십시오. _sys_nerr, _doserrno, errno, _sys_errlist,.

printf_s및 fprintf_s 를 제외 하 고는 동일 하 게 동작 printf_s 출력에 씁니다 stdout 아니라 대상 형식의 FILE.자세한 내용은 fprintf_s, _fprintf_s_l, fwprintf_s, _fwprintf_s_l을 참조하십시오.

wprintf_s와이드 문자 버전인 printf_s. format와이드 문자 문자열이입니다.wprintf_s및 printf_s 스트림 ANSI 모드에서 연 경우 동일 하 게 동작 합니다.printf_s현재 출력 스트림으로 유니코드를 지원 하지 않습니다.

이러한 함수 버전을 _l 접미사는 전달 하지 않고 현재 스레드 로캘은 로캘 매개 변수를 사용 하는 것을 제외 하 고 동일 합니다.

일반 텍스트 루틴 매핑

TCHAR입니다.H 루틴

_UNICODE 및 _Mbcs가 정의 되어 있지 않습니다

_Mbcs가 정의

_unicode가 정의

_tprintf_s

printf_s

printf_s

wprintf_s

_tprintf_s_l

_printf_s_l

_printf_s_l

_wprintf_s_l

format 인수에 일반 문자를 이스케이프 시퀀스로 구성 됩니다 및 (인수를 따를 경우 format) 형식 사양을.일반 문자 및 이스케이프 시퀀스 복사 됩니다 stdout 해당 모양 순서 대로.예를 들어, 줄

printf_s("Line one\n\t\tLine two\n"); 

출력을 생성합니다.

Line one
        Line two

형식 사양을 는 백분율 기호 항상 시작 (%)와 왼쪽 오른쪽으로 읽습니다.때 printf_s 첫 번째 형식 사양 (있는 경우)을 발견 한 후 첫 번째 인수의 값을 변환 format 한 후 그에 따라 출력.두 번째 인수를 변환 하 고 출력을 둘째 형식 사양을 사용 하면 등.인수를 형식 사양을 보다 더 있을 경우 추가 인수는 무시 됩니다.모든 형식 사양에 대한 인수가 충분 하지 않습니다 경우 결과 정의 되지 않습니다.

보안 정보보안 정보

되도록 format 사용자 정의 하는 문자열이 아닙니다.

요구 사항

루틴

필수 헤더

printf_s, _printf_s_l

<stdio.h>

wprintf_s, _wprintf_s_l

<stdio.h> 또는 <wchar.h>

콘솔에서 지원 되지 않습니다 Windows 스토어 응용 프로그램입니다.콘솔에 연결 된 표준 스트림 핸들 stdin, stdout, 및 stderr, C 런타임 함수를 사용 하기 전에 이동 해야 Windows 스토어 응용 프로그램입니다.추가 호환성 정보를 참조 하십시오. 호환성 소개에서 합니다.

예제

// crt_printf_s.c
/* This program uses the printf_s and wprintf_s functions
 * to produce formatted output.
 */

#include <stdio.h>

int main( void )
{
   char   ch = 'h', *string = "computer";
   int    count = -9234;
   double fp = 251.7366;
   wchar_t wch = L'w', *wstring = L"Unicode";

   /* Display integers. */
   printf_s( "Integer formats:\n"
           "   Decimal: %d  Justified: %.6d  Unsigned: %u\n",
           count, count, count );

   printf_s( "Decimal %d as:\n   Hex: %Xh  C hex: 0x%x  Octal: %o\n",
            count, count, count, count );

   /* Display in different radixes. */
   printf_s( "Digits 10 equal:\n   Hex: %i  Octal: %i  Decimal: %i\n",
            0x10, 010, 10 );

   /* Display characters. */

   printf_s("Characters in field (1):\n%10c%5hc%5C%5lc\n", ch, ch, wch, wch);
   wprintf_s(L"Characters in field (2):\n%10C%5hc%5c%5lc\n", ch, ch, wch, wch);

   /* Display strings. */

   printf_s("Strings in field (1):\n%25s\n%25.4hs\n   %S%25.3ls\n",
   string, string, wstring, wstring);
   wprintf_s(L"Strings in field (2):\n%25S\n%25.4hs\n   %s%25.3ls\n",
       string, string, wstring, wstring);

   /* Display real numbers. */
   printf_s( "Real numbers:\n   %f %.2f %e %E\n", fp, fp, fp, fp );

   /* Display pointer. */
   printf_s( "\nAddress as:   %p\n", &count);

}

샘플 출력

Integer formats:
   Decimal: -9234  Justified: -009234  Unsigned: 4294958062
Decimal -9234 as:
   Hex: FFFFDBEEh  C hex: 0xffffdbee  Octal: 37777755756
Digits 10 equal:
   Hex: 16  Octal: 8  Decimal: 10
Characters in field (1):
         h    h    w    w
Characters in field (2):
         h    h    w    w
Strings in field (1):
                 computer
                     comp
   Unicode                      Uni
Strings in field (2):
                 computer
                     comp
   Unicode                      Uni
Real numbers:
   251.736600 251.74 2.517366e+002 2.517366E+002

Address as:   0012FF78

해당 .NET Framework 항목

참고 항목

참조

부동 소수점 지원

스트림 I/O

로캘

통해, _wfopen

않는다면, _fprintf_l, fwprintf, _fwprintf_l

scanf, _scanf_l, wscanf, _wscanf_l

sprintf, _sprintf_l, swprintf, _swprintf_l, __swprintf_l

vprintf 함수