Udostępnij za pośrednictwem


_cprintf_s, _cprintf_s_l, _cwprintf_s, _cwprintf_s_l

Formatuje i drukuje do konsoli.Te wersje _cprintf, _cprintf_l, _cwprintf, _cwprintf_l mają wzmocnienia zabezpieczeń, jak opisano w Funkcje zabezpieczeń w CRT.

Ważna uwagaWażne

Tego API nie można używać w aplikacjach korzystających ze środowiska wykonawczego Windows.Aby uzyskać więcej informacji, zobacz Funkcje CRT nieobsługiwane przez /ZW.

int _cprintf_s( 
   const char * format [, 
   argument] ... 
);
int _cprintf_s_l( 
   const char * format,
   locale_t locale [, 
   argument] ... 
);
int _cwprintf_s(
   const wchar * format [, 
   argument] ...
);
int _cwprintf_s_l(
   const wchar * format,
   locale_t locale [, 
   argument] ...
);

Parametry

  • format
    Ciąg formantu formatu.

  • argument
    Parametry opcjonalne.

  • locale
    Ustawienia regionalne do użycia.

Wartość zwracana

Liczba znaków wydrukowanych.

Uwagi

Te funkcje formatują i drukują szeregi znaków i wartości bezpośrednio do konsoli, za pomocą _putch funkcji (_putwch dla _cwprintf_s) do znaków danych wyjściowych.Każdy argument (jeśli istnieje) jest konwertowaya i wychodzi według specyfikacji formatu w format.Format ma taką samą formę i funkcjonuje jako format parametr dla printf_s funkcji.W przeciwieństwie do funkcji fprintf_s, printf_s i sprintf_s, ani _cprintf_s ani _cwprintf_s nie tłumaczy znaków przesunięcia o wiersz na kombinacje znaków twardego końca wiersza (CR-LF) podczas drukowania.

Istotna różnica polega na tym, że _cwprintf_s wyświetla znaki Unicode w systemie Windows NT.W przeciwieństwie do _cprintf_s, _cwprintf_s używa bieżącej konsoli regionalnej.

Wersje tych funkcji, które mają przyrostek _l są identyczne, z tą różnicą, że korzystają z przekazanego parametru ustawień regionalnych, zamiast bieżących ustawień regionalnych.

Uwaga dotycząca zabezpieczeńUwaga dotycząca zabezpieczeń

Zapewnienia, że format nie jest ciągiem zdefiniowanym przez użytkownika.

Podobnie jak niezabezpieczone wersje (patrz _cprintf, _cprintf_l, _cwprintf, _cwprintf_l), funkcje te sprawdzają poprawność swoich parametrów i wywołują procedurę obsługi nieprawidłowego parametru, jak opisano w Sprawdzanie poprawności parametru, jeśli format jest wskaźnikiem typu null.Funkcje te różnią się od wersji niezabezpieczonej, a tym samym ciąg formatu jest również sprawdzany.W przypadku wszelkich nieznanych lub źle sformułowanych specyfikatorów formatowania, funkcji te wywołają procedurę obsługi nieprawidłowego parametru.We wszystkich przypadkach, jeśli wykonanie może być kontynuowane, te funkcje zwracają wartość -1 i ustawiają errno jako EINVAL.

Rutynowe mapowania zwykłego tekstu

Procedura Tchar.h

_UNICODE i _MBCS nie zdefiniowany

_MBCS zdefiniowano

_UNICODE zdefiniowany

_tcprintf_s

_cprintf_s

_cprintf_s

_cwprintf_s

_tcprintf_s_l

_cprintf_s_l

_cprintf_s_l

_cwprintf_s_l

Wymagania

Procedura

Wymagany nagłówek

_cprintf_s,_cprintf_s_l

<conio.h>

_cwprintf_s, _cwprintf_s_l

<conio.h>

Aby uzyskać więcej informacji na temat zgodności – zobacz: Zgodność.

Biblioteki

Wszystkie wersje Bibliotek uruchomieniowych C.

Przykład

// crt_cprintf_s.c
// compile with: /c
// This program displays some variables to the console.


#include <conio.h>

int main( void )
{
   int      i = -16, h = 29;
   unsigned u = 62511;
   char     c = 'A';
   char     s[] = "Test";

   /* Note that console output does not translate \n as
    * standard output does. Use \r\n instead.
    */
   _cprintf_s( "%d  %.4x  %u  %c %s\r\n", i, h, u, c, s );
}

Dane wyjściowe

-16  001d  62511  A Test

Zobacz też

Informacje

Operacje We/Wy konsoli i portu

_cscanf, _cscanf_l, _cwscanf, _cwscanf_l

fprintf_s, _fprintf_s_l, fwprintf_s, _fwprintf_s_l

printf_s, _printf_s_l, wprintf_s, _wprintf_s_l

sprintf_s, _sprintf_s_l, swprintf_s, _swprintf_s_l

vfprintf_s, _vfprintf_s_l, vfwprintf_s, _vfwprintf_s_l

Składnia specyfikacji formatu: funkcje printf i wprintf