Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Formaterar och skriver ut till konsolen. Dessa versioner av _cprintf, _cprintf_l, _cwprintf, _cwprintf_l har säkerhetsförbättringar enligt beskrivningen i Säkerhetsfunktioner i CRT.
Viktigt!
Det här API:et kan inte användas i program som körs i Windows Runtime. Mer information finns i CRT-funktioner som inte stöds i Universella Windows Platform-appar.
Syntax
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] ...
);
Parameterar
format
Formatkontrollsträng.
argument
Valfria parametrar.
locale
Språkvarianten som ska användas.
Returvärde
Antalet tecken som skrivs ut.
Anmärkningar
Dessa funktioner formaterar och skriver ut en serie tecken och värden direkt till konsolen med hjälp av _putch funktionen (_putwch för ) för _cwprintf_satt mata ut tecken. Varje argument (om någon) konverteras och utdata enligt motsvarande formatspecifikation i format. Formatet har samma formulär och funktion som parametern formatprintf_s för funktionen.
fprintf_sTill skillnad från funktionerna _cprintf_s , printf_soch sprintf_s och _cwprintf_s översätter inte radmatningstecken till vagnreturlinjematning (CR-LF) kombinationer vid utdata.
En viktig skillnad är att _cwprintf_s visar Unicode-tecken när de används i Windows NT. Till skillnad från _cprintf_sanvänder _cwprintf_s använder den aktuella konsolspråket
Versionerna av dessa funktioner med suffixet _l är identiska förutom att de använder språkparametern som skickas i stället för det aktuella språket.
Viktigt!
Kontrollera att det format inte är en användardefinierad sträng.
Från och med Windows 10 version 2004 (version 19041) skriver funktionsfamiljen printf ut exakt representerande flyttalsnummer enligt IEEE 754-reglerna för avrundning. I tidigare versioner av Windows skulle exakt representerande flyttalsnummer som slutar på "5" alltid avrunda uppåt. IEEE 754 anger att de måste avrunda till den närmaste jämna siffran (även kallat "Bankers avrundning"). Till exempel bör både printf("%1.0f", 1.5) och printf("%1.0f", 2.5) avrunda till 2. Tidigare skulle 1,5 avrunda till 2 och 2,5 skulle avrunda till 3. Den här ändringen påverkar endast exakt representerande tal. Till exempel fortsätter 2.35 (som, när det representeras i minnet, är närmare 2.3500000000000000008) att avrunda upp till 2,4. Avrundning som utförs av dessa funktioner respekterar nu också flyttalsrundningsläget som anges av fesetround. Tidigare valde FE_TONEAREST avrundning alltid beteende. Den här ändringen påverkar endast program som skapats med Visual Studio 2019 version 16.2 och senare. Om du vill använda det äldre avrundningsbeteendet för flyttalser länkar du till legacy_stdio_float_rounding.obj.
Precis som de icke-säkra versionerna (se _cprintf, _cprintf_l, _cwprintf, _cwprintf_l) verifierar dessa funktioner sina parametrar och anropar den ogiltiga parameterhanteraren, enligt beskrivningen i Parameterverifiering, om format är en null-pekare. Dessa funktioner skiljer sig från de icke-säkra versionerna eftersom själva formatsträngen också verifieras. Om det finns några okända eller felaktigt formateringsspecificerare anropar dessa funktioner den ogiltiga parameterhanteraren. Om körningen tillåts fortsätta returnerar funktionerna i alla fall -1 och är inställda errno på EINVAL.
Allmän textrutinmappning
| Tchar.h-rutin |
_UNICODE och _MBCS inte definierad |
_MBCS definierad |
_UNICODE definierad |
|---|---|---|---|
_tcprintf_s |
_cprintf_s |
_cprintf_s |
_cwprintf_s |
_tcprintf_s_l |
_cprintf_s_l |
_cprintf_s_l |
_cwprintf_s_l |
Kravspecifikation
| Rutin | Obligatoriskt huvud |
|---|---|
_cprintf_s, _cprintf_s_l |
<conio.h> |
_cwprintf_s, _cwprintf_s_l |
<conio.h> |
Mer kompatibilitetsinformation finns i Kompatibilitet.
Bibliotek
Alla versioner av C-körningsbibliotek.
Exempel
// 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
Se även
-konsolen och port-I/O-
_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
Syntax för formatspecifikation: printf och wprintf funktioner