_cprintf_p, _cprintf_p_l, _cwprintf_p, _cwprintf_p_l
布局和输出到控件中,使用位置参数支持在格式字符串。
重要事项 |
---|
此 API 不能在运行时的窗口执行的应用程序。有关更多信息,请参见 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 );
}
请参见
参考
_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