_cprintf_p、_cprintf_p_l、_cwprintf_p、_cwprintf_p_l
格式和列印至主控台和支援格式字串的位置參數。
重要
這個應用程式開發介面不能用於 Windows 執行階段執行的應用程式。如需詳細資訊,請參閱 /ZW 不支援 CRT 函式。
int _cprintf_p(
const char * format [,
argument] ...
);
int _cprintf_p_l(
const char * format,
locale_t locale [,
argument] ...
);
int _cwprintf_p(
const wchar * format [,
argument] ...
);
int _cwprintf_p_l(
const wchar * format,
locale_t locale [,
argument] ...
);
參數
format
格式控制字串。argument
選擇性參數。locale
使用的地區設定。
傳回值
列印的字元數,或傳回負值時表示發生錯誤。
備註
這些函式格式化並列印一系列的字元與值直接寫入主控台,並使用_putch和_putwch 函式輸出字元。 每個 argument (如果有的話) 是根據 format中的對應格式規格轉換和輸出。 格式有相同的表單和函式,如printf_p 函式的 format 參數。 _cprintf_p和 cprintf_s的差異在於 _cprintf_p支援可以指定命令引數使用格式字串的位置參數。 如需詳細資訊,請參閱printf_p 位置參數。
不同於 fprintf_p、printf_p和 sprintf_p這三個函式, _cprintf_p 和 _cwprintf_p 在輸出時皆不會轉譯換行字元為托架傳回行摘要 (CR-LF) 組合。 重要區別是 _cwprintf_p 在其用於 Windows NT 時顯示 Unicode 字元。 不同於 _cprintf_p, _cwprintf_p 表示使用目前控制台中的地區設定。
這些以 _l 後綴的函式版本除了使用傳入的地區設定以外行為相同。
安全性提示 |
---|
確認 format 不是使用者定義的字串。 |
此外,如 _cprintf_s 和 _cwprintf_s,則會驗證輸入指標和格式字串。 如果 format 或 argument 是 NULL,或者格式字串包含無效的格式化字元,這些函式會叫用無效的參數處理常式,如參數驗證中所述。 如果允許繼續執行,這些函式會傳回 -1 並將errno 設定為 EINVAL。
一般文字常式對應
Tchar.h 常式 |
未定義 _UNICODE and _MBCS |
已定義 _MBCS |
已定義 _UNICODE |
---|---|---|---|
_tcprintf_p |
_cprintf_p |
_cprintf_p |
_cwprintf_p |
_tcprintf_p_l |
_cprintf_p_l |
_cprintf_p_l |
_cwprintf_p_l |
需求
常式 |
必要的標頭 |
---|---|
_cprintf_p,_cprintf_p_l |
<conio.h> |
_cwprintf_p,_cwprintf_p_l |
<conio.h> |
如需詳細的相容性資訊,請參閱相容性。
範例
// crt_cprintf_p.c
// This program displays some variables to the console
// using the _cprintf_p function.
#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_p( "%2$d %1$.4x %3$u %4$c %5$s\r\n",
h, i, u, c, s );
}
請參閱
參考
_cscanf、_cscanf_l、_cwscanf、_cwscanf_l
_cscanf_s、_cscanf_s_l、_cwscanf_s、_cwscanf_s_l
_fprintf_p、_fprintf_p_l、_fwprintf_p、_fwprintf_p_l
fprintf_s、_fprintf_s_l、fwprintf_s、_fwprintf_s_l
_printf_p、_printf_p_l、_wprintf_p、_wprintf_p_l
printf_s、_printf_s_l、wprintf_s、_wprintf_s_l
_sprintf_p、_sprintf_p_l、_swprintf_p、_swprintf_p_l
_vfprintf_p、_vfprintf_p_l、_vfwprintf_p、_vfwprintf_p_l
_cprintf_s、_cprintf_s_l、_cwprintf_s、_cwprintf_s_l