c语言wprintf函数底层代码,_cprintf, _cprintf_l, _cwprintf, _cwprintf_l

本文详细介绍了_cprintf和_cwprintf函数,它们用于在控制台或特定区域设置下格式化并打印字符。注意,这些函数不适用于运行时的窗口应用程序,并且处理CR-LF组合。讨论了不同版本(_l后缀)的区别,以及如何确保format参数安全。还提供了.NET Framework的替代方案和示例代码。
摘要由CSDN通过智能技术生成

_cprintf, _cprintf_l, _cwprintf, _cwprintf_l

04/10/2013

本文内容

重要

此 API 不能在运行时的窗口执行的应用程序。有关更多信息,请参见 CRT 函数不支持与 /ZW。

int _cprintf(

const char * format [,

argument] ...

);

int _cprintf_l(

const char * format,

locale_t locale [,

argument] …

);

int _cwprintf(

const wchar * format [,

argument] …

);

int _cwprintf_l(

const wchar * format,

locale_t locale [,

argument] …

);

参数

format

窗体控件字符串。

argument

可选参数。

locale

使用的区域设置。

返回值

打印的字符数。

备注

这些功能设置格式并打印一系列字符和值直接添加到控件中,使用 _putch 功能 ( _cwprintf的_putwch ) 到输出字符。 每 argument (如果有) 基于在 format相应的格式规范转换和输出。 该窗体具有窗体和功能和 printf 功能的 format 参数相同。 不同 fprintf、printf和 sprintf 功能,_cprintf 和 _cwprintf 不将换行符转换为支持返回换行符 (CR-LF) 组合,如输出。

重要的区别是 _cwprintf 在 Windows NT 显示 Unicode 字符,在使用。 不同 _cprintf,_cwprintf 使用当前控件个区域设置。

这些功能的版本与 _l 后缀的相同,只不过它们使用区域设置参数而不是当前区域设置。

_cprintf 验证 format 参数。 如果 format 是 null 指针,该函数调用的参数无效处理程序,如 参数验证所述。 如果执行允许继续,该函数返回 -1 并将 errno 到 EINVAL。

c0e8c362aff1b1896a4e39068cce00c6.gif安全说明

确保 format 不是用户定义的字符串。

一般文本例程映射

Tchar.h 实例

未定义的_UNICODE 和_MBCS

定义的_MBCS

定义的_UNICODE

_tcprintf

_cprintf

_cprintf

_cwprintf

_tcprintf_l

_cprintf_l

_cprintf_l

_cwprintf_l

要求

实例

必需的标头

_cprintf,_cprintf_l

_cwprintf, _cwprintf_l

有关更多兼容性信息,请参见中介绍的 兼容性。

示例

// crt_cprintf.c

// compile with: /c

// This program displays some variables to the console.

#include

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 测试

.NET Framework 等效项

不适用。若要调用标准 C 函数,请使用 PInvoke。有关更多信息,请参见 平台调用示例。

请参见

参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值