_cprintf
, , _cprintf_l
, , _cwprintf
_cwprintf_l
Formatuje i drukuje w konsoli programu . Dostępne są bardziej bezpieczne wersje; zobacz _cprintf_s
, , _cwprintf_s
_cprintf_s_l
, , _cwprintf_s_l
.
Ważne
Tego interfejsu API nie można używać w aplikacjach wykonywanych w środowisko wykonawcze systemu Windows. Aby uzyskać więcej informacji, zobacz Funkcje CRT nieobsługiwane w aplikacjach platforma uniwersalna systemu Windows.
Składnia
int _cprintf(
const char * format [, argument_list]
);
int _cprintf_l(
const char * format,
_locale_t locale [, argument_list]
);
int _cwprintf(
const wchar * format [, argument_list]
);
int _cwprintf_l(
const wchar * format,
_locale_t locale [, argument_list]
);
Parametry
format
Ciąg kontroli formatu.
argument_list
Parametry opcjonalne dla ciągu formatu.
locale
Ustawienia regionalne do użycia.
Wartość zwracana
Liczba drukowanych znaków.
Uwagi
Te funkcje formatować i drukować serię znaków i wartości bezpośrednio w konsoli przy użyciu _putch
funkcji (_putwch
for _cwprintf
) do znaków wyjściowych. Każdy argument w pliku argument_list
(jeśli istnieje) jest konwertowany i wyjściowy zgodnie z odpowiednią specyfikacją formatu w pliku format
. Argument format
używa składni specyfikacji formatu dla funkcji printf i wprintf. fprintf
W przeciwieństwie do funkcji _cprintf
_cwprintf
, printf
i sprintf
nie tłumacz znaków zestawienia wierszy na kombinacje zestawienia powrotu karetki (CR-LF) podczas danych wyjściowych.
Ważne rozróżnienie polega na _cwprintf
wyświetlaniu znaków Unicode w przypadku użycia w systemie Windows. W przeciwieństwie do _cprintf
programu _cwprintf
używa bieżących ustawień regionalnych konsoli.
Wersje tych funkcji z sufiksem _l
są identyczne, z tą różnicą, że używają parametru ustawień regionalnych przekazanych zamiast bieżących ustawień regionalnych.
_cprintf
sprawdza poprawność parametru format
. Jeśli format
jest wskaźnikiem o wartości null, funkcja wywołuje nieprawidłową procedurę obsługi parametrów zgodnie z opisem w temacie Weryfikacja parametrów. Jeśli wykonywanie jest dozwolone do kontynuowania, funkcja zwraca wartość -1 i ustawia wartość errno
EINVAL
.
Ważne
Upewnij się, że format
nie jest to ciąg zdefiniowany przez użytkownika.
Począwszy od systemu Windows 10 w wersji 2004 (kompilacja 19041), printf
rodzina funkcji drukuje dokładnie możliwe liczby zmiennoprzecinkowe zgodnie z regułami IEEE 754 dotyczącymi zaokrąglania. W poprzednich wersjach systemu Windows dokładnie reprezentowane liczby zmiennoprzecinkowe kończące się na "5" zawsze zaokrągla się w górę. IEEE 754 stwierdza, że muszą zaokrąglić do najbliższej parzysta cyfra (znana również jako "Zaokrąglanie Bankiera"). Na przykład oba printf("%1.0f", 1.5)
printf("%1.0f", 2.5)
elementy i powinny być zaokrąglone do 2. Wcześniej 1,5 zaokrągliłoby się do 2 i 2,5 do 3. Ta zmiana dotyczy tylko dokładnie możliwych do reprezentowania liczb. Na przykład 2,35 (który, gdy jest reprezentowany w pamięci, jest bliżej 2,350000000000000008) nadal zaokrągla się do 2,4. Zaokrąglanie wykonywane przez te funkcje jest teraz również zgodne z trybem zaokrąglania zmiennoprzecinkowego ustawionym przez fesetround
. Wcześniej zaokrąglanie zawsze wybierało FE_TONEAREST
zachowanie. Ta zmiana dotyczy tylko programów utworzonych przy użyciu programu Visual Studio 2019 w wersji 16.2 lub nowszej. Aby użyć starszego zachowania zaokrąglania zmiennoprzecinkowego, połącz się z elementem legacy_stdio_float_rounding.obj
.
Mapowania procedur tekstu ogólnego
Procedura tchar.h | _UNICODE i _MBCS niezdefiniowane |
_MBCS zdefiniowany |
_UNICODE zdefiniowany |
---|---|---|---|
_tcprintf |
_cprintf |
_cprintf |
_cwprintf |
_tcprintf_l |
_cprintf_l |
_cprintf_l |
_cwprintf_l |
Wymagania
Procedura | Wymagany nagłówek |
---|---|
_cprintf , _cprintf_l |
<conio.h> |
_cwprintf , _cwprintf_l |
<conio.h> |
Aby uzyskać więcej informacji o zgodności, zobacz Zgodność.
Przykład
// crt_cprintf.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( "%d %.4x %u %c %s\r\n", i, h, u, c, s );
}
-16 001d 62511 A Test
Zobacz też
We/Wy konsoli i portu
_cscanf
, , _cscanf_l
, , _cwscanf
_cwscanf_l
fprintf
, , _fprintf_l
, , fwprintf
_fwprintf_l
printf
, , _printf_l
, , wprintf
_wprintf_l
sprintf
, , _sprintf_l
, swprintf
, , _swprintf_l
__swprintf_l
vfprintf
, , _vfprintf_l
, , vfwprintf
_vfwprintf_l
_cprintf_s
, , _cprintf_s_l
, , _cwprintf_s
_cwprintf_s_l
_cprintf_p
, , _cprintf_p_l
, , _cwprintf_p
_cwprintf_p_l
Składnia specyfikacji formatu: printf
i wprintf
funkcje