Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Formata e imprime no console. Essas versões do , _cprintf_l, _cwprintf, _cwprintf_ltêm aprimoramentos de_cprintf segurança, conforme descrito em Recursos de segurança no CRT.
Importante
Essa API não pode ser usada em aplicativos executados no Tempo de Execução do Windows. Para obter mais informações, consulte funções CRT não suportadas em aplicativos da Plataforma Universal do Windows.
Sintaxe
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.
Observações
Essas funções formatam e imprimem uma série de caracteres e valores diretamente no console, usando a _putch função (_putwch for _cwprintf_s) para caracteres de saída. Cada argument um (se houver) é convertido e saída de acordo com a especificação de formato correspondente em format. O formato tem a mesma forma e função que o format parâmetro para a printf_s função. Ao contrário das fprintf_sfunções _cprintf_s_cwprintf_s , printf_s, e sprintf_s não traduzem caracteres de alimentação de linha em combinações de alimentação de linha de retorno de carro (CR-LF) quando a saída.
Uma distinção importante é que _cwprintf_s exibe caracteres Unicode quando usado no Windows NT. Ao contrário _cprintf_sdo , _cwprintf_s usa a localidade atual do console
As versões dessas funções com o sufixo _l são idênticas, exceto que elas usam o parâmetro locale passado em vez da localidade atual.
Importante
Certifique-se de que format não é uma cadeia de caracteres definida pelo usuário.
A partir do Windows 10 versão 2004 (build 19041), a família de funções imprime printf números de ponto flutuante exatamente representáveis de acordo com as regras IEEE 754 para arredondamento. Em versões anteriores do Windows, números de ponto flutuante exatamente representáveis terminando em '5' sempre arredondavam para cima. IEEE 754 afirma que eles devem arredondar para o dígito par mais próximo (também conhecido como "Arredondamento do Banqueiro"). Por exemplo, ambos printf("%1.0f", 1.5) e printf("%1.0f", 2.5) deve arredondar para 2. Anteriormente, 1,5 arredondava para 2 e 2,5 arredondava para 3. Esta alteração afeta apenas números exatamente representáveis. Por exemplo, 2.35 (que, quando representado na memória, está mais próximo de 2.35000000000000008) continua a arredondar para 2.4. O arredondamento feito por essas funções agora também respeita o modo de arredondamento de ponto flutuante definido pela fesetround. Anteriormente, o arredondamento sempre escolhia o FE_TONEAREST comportamento. Essa alteração afeta apenas os programas criados usando o Visual Studio 2019 versão 16.2 e posterior. Para usar o comportamento de arredondamento de ponto flutuante herdado, vincule-se a legacy_stdio_float_rounding.obj.
Como as versões não seguras (consulte _cprintf, _cprintf_l, , _cwprintf_cwprintf_l), essas funções validam seus parâmetros e invocam o manipulador de parâmetros inválido, conforme descrito em Validação de parâmetros, se format for um ponteiro nulo. Essas funções diferem das versões não seguras porque a própria cadeia de caracteres de formato também é validada. Se houver algum especificador de formatação desconhecido ou mal formado, essas funções invocarão o manipulador de parâmetros inválido. Em todos os casos, se a execução for permitida para continuar, as funções retornarão -1 e definirão errno como EINVAL.
Mapeamentos de 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 |
Requerimentos
| Rotina | Cabeçalho obrigató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 de tempo de execução do C.
Exemplo
// crt_cprintf_s.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 );
}
-16 001d 62511 A Test
Ver também
Console e porta E/S
_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 da especificação do formato: printf e wprintf funções