_cprintf_p、 _cprintf_p_l、 _cwprintf_p、 _cwprintf_p_l

格式和列印至主控台,支援位置參數格式字串。

重要事項重要事項

這個 API 不能用於 Windows 執行階段執行的應用程式。如需詳細資訊,請參閱 CRT 函式不支援使用 /ZW

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 和 _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 );
}
  

請參閱

參考

主控台和連接埠的 I/O

_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

_cprintf_s、 _cprintf_s_l、 _cwprintf_s、 _cwprintf_s_l

printf_p 位置參數

printf_p 位置參數

格式規格語法:printf 和 wprintf 函式