C++中printf()函数的用法5

printf()函数的type是%n时,不是表示打印数据,而是将打印信息的数量保存到指定的变量中,需要注意的是,在printf()函数中使用%n时,其对应的参数是变量的地址。

1 打开%n的开关

当printf()使用%n时,会有不安全的隐患,因此,默认情况下,%n是不能使用的。如果需要使用,则要打开%n的开关。

1.1 获取%n的开关状态

通过_get_printf_count_output()函数获取当前%n的开关状态。如果%n是不能使用,则返回值是0,否则返回值是1。

​​​​​​​1.2 设置%n的开关状态

通过_set_printf_count_output()函数设置%n的开关状态。当该函数的参数是0时,则关闭%n的开关,如果参数是非零值,则打开%n的开关。_set_printf_count_output()函数的返回值是修改之前的%n的开关状态,不能使用,则返回值是0,否则返回值是1。

2 使用%n

以下代码在printf()中使用了%n

int a;

int e;

e = _get_printf_count_output();

if (e == 0)

{

  _set_printf_count_output(1);

}

printf("12345%n", &a);

此时,a的值是%n之前的字符串的长度,即此时a的值是5。如果%n的位置变为

printf("123%n45", &a);

此时,a的值是%n之前的字符串的长度,即a的值是3。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值