Compartilhar via


_cprintf_s, _cprintf_s_l, _cwprintf_s, _cwprintf_s_l

Formata e exibe no console. Essas versões de _cprintf, _cprintf_l, _cwprintf, _cwprintf_l têm aprimoramentos de segurança, como descrito em Recursos de segurança no CRT.

Importante

Esta API não pode ser usada em aplicativos que executam no Tempo de Execução do Windows.Para obter mais informações, consulte Funções CRT sem suporte pelo /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] ...
);

Parâmetros

  • format
    Cadeia de caracteres de controle de formato.

  • argument
    Parâmetros opcionais.

  • locale
    A localidade a ser usada.

Valor de retorno

O número de caracteres impressos.

Comentários

Essas funções formatam e imprimem uma série de caracteres e valores diretamente para o console, usando a função _putch (_putwch para _cwprintf_s) para caracteres de saída. Cada argument (se houver) é convertido e gerado de acordo com a especificação de formato correspondente em format. O formato tem o mesmo formulário e a mesma função que o parâmetro format para a função printf_s. Ao contrário, as funções de fprintf_s, de printf_s e sprintf_s ou _cprintf_s ou _cwprintf_s traduz caracteres de alimentação de linha em combinações de alimentação da linha de retorno de transporte (CR-LF) na saída.

Uma distinção importante é que _cwprintf_s exibe caracteres Unicode quando usado no Windows NT. Ao contrário de _cprintf_s, _cwprintf_s usa a localidade atual de console

As versões dessas funções com o sufixo _l são idênticas, exceto que elas usam o parâmetro de localidade informado em vez da localidade atual.

Observação de segurançaObservação de segurança

Verifique se format não é uma cadeia de caracteres definida pelo usuário.

Assim como as versões não seguras (consulte _cprintf, _cprintf_l, _cwprintf, _cwprintf_l), essas funções validam seus parâmetros e chamam o manipulador de parâmetro inválido, conforme descrito em Validação do parâmetro, se format for um ponteiro nulo. Essas funções diferem das versões não seguras porque a cadeia de caracteres de formato em si também é validada. Se houver especificadores de formatação desconhecidos ou mal formatados, essas funções chamarão o manipulador de parâmetro inválido. Em todos os casos, se a execução puder continuar, as funções retornarão -1 e definirão errno como EINVAL.

Mapeamentos da rotina de texto genérico

Rotina Tchar.h

_UNICODE e _MBCS não definidos

_MBCS definido

_UNICODE definido

_tcprintf_s

_cprintf_s

_cprintf_s

_cwprintf_s

_tcprintf_s_l

_cprintf_s_l

_cprintf_s_l

_cwprintf_s_l

Requisitos

Rotina

Cabeçalho necessário

_cprintf_s,_cprintf_s_l

<conio.h>

_cwprintf_s, _cwprintf_s_l

<conio.h>

Para obter mais informações sobre compatibilidade, consulte Compatibilidade.

Bibliotecas

Todas as versões das Bibliotecas em tempo de execução C.

Exemplo

// 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 );
}

Saída

-16  001d  62511  A Test

Consulte também

Referência

Console e E/S de porta

_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

Sintaxe de especificação de formato: funções printf e and wprintf