c++ printf控制位数_printf函数

16d13c2cffbb6198dc906ac74447cb73.png

一、函数

printf()函数是格式化输出函数,一般用于向标准输出设备按规定格式输出信息。在编写程序时经常会用到此函数。

函数的原型为:

int 

函数返回值为整型。若成功返回输出的字符数,输出出错则返回负值。

函数的调用格式为:

printf(“<格式化字符串>”, <参量表>);

其中格式化字符串包括两部分内容:一部分是正常字符,这些字符将按照原样输出;另一部分是格式化规定字符,以“%”开始,后跟一个或几个规定字符,用来确定输出内容格式。

参量表是需要输出的一系列参数,其个数必须与格式化字符串所说明的输出参数个数一样多,各参数之间用“,”分开,且顺序一一对应,否则将会出行意想不到的错误。


二、Format

format,包含了要被写入到标准输出stdout的文本。它可以包含嵌入式的format标签,format标签可被随后的附加参数中指定的值替换,并按需求进行格式化。format标签属性是%[flags][width][.precision][length]specifier

1. specifier(说明符)

  • %i、d 十进制有符号整数(整数不输出符号);
  • %u 十进制无符号整数;
  • %o 无符号以八进制表示的整数(不输出前缀0);
  • %x、%X 无符号以十六进制表示的整数(不输出前缀Ox);
  • %f 十进制浮点数;
  • %a、A 以十六进制表示的浮点数(C99
  • %e、%E 以十进制指数形式表示的浮点数;
  • %g、%G 把输出的值按照%e或者%f类型中输出长度较小的方式输出;
  • %c 单个字符;
  • %s 字符串;
  • %n 返回对函数的此调用迄今为止写入的字符数;
  • %p 指针的值;
  • %% %符号。

2. flags(标识)

  • - 在给定的字段宽度内左对齐,默认是右对齐。
  • + 强制在结果之前显示加号或减号(“+”或“-”),即正数前面会显示“+”号,默认情况下只有负数前面会显示一个“-”号。
  • 空格 如果没有写入任何字符,则在该值前面插入一个空格。
  • # 与o、x或X说明符一起使用时,非零值前面会分别显示0、0x或0X;与e、E和f一起使用时,会强制输出包含一个小数点,即使后边没有数字是也会显示小数点,默认情况下,如果后边没有数字时,不会显示小数点;与g或G一起使用时,结果与使用e或E时相同,但是尾部的零不会被移除。
  • 0 在指定填充padding的数字左边放置零,而不是空格。

3. width(宽度)

  • (number) 要输出的字符的最小数目,如果输出的值短于该数,结果会用空格填充,如果输出的值长于该数,结果不会被截断;
  • * 宽度在format字符串中未指定,但是会作为附加整数值参数放置于要被格式化的参数之前。

4. .precision(精度)

  • .number 对于整数说明符(的d、i、o、u、x、X),precision指定了要写入的数字的最小位数,如果写入的值短于该数,结果会用前导零来填充,如果写入的值长于该数,结果不会被截断。精度为0意味着不写入任何字符。

对于e、E和f说明符,要在小数点后输出的小数位数。

对于g和G说明符:要输出的最大有效位数。

对于s:要输出的最大字符数。默认情况下,所有字符都会被输出,直到遇到末尾的空字符。

对于c类型:没有任何影响。

当未指定任何精度时,默认为1,如果指定时不带有一个显示值,则假定为0。

  • ·* 精度在format字符串中未指定,但是会作为附加整数值参数放置于要被格式化的参数之前。

5. length(长度)

  • hh 将相应的参数按照signed char或unsigned char类型输出(仅适用于整数说明符:i、d、o、u、x、X和n,C99);
  • h 将相应的参数按照short或unsigned short类型输出(仅适用于整数说明符:i、d、o、u、x、X和n);
  • l 参数被解释为long或unsigned long,适用于整数说明符(i、d、o、u、x和X)及说明符c(表示一个宽字符)和s(表示宽字符字符串),将相应参数按double类型输出(仅适用于浮点数说明符:e、E、f、g和G,C99);
  • ll 将相应的参数按long long或unsigned long long类型输出(仅适用于整数说明符:i、d、o、u、x、X和n,C99);
  • L 参数被解释为long double(仅适用于浮点数说明符:e、E、f、g和G)。
  • j 将相应的参数按照intmax_t或unsigned intmax_t类型输出(仅适用于整数说明符:i、d、o、u、x、X和n,C99);
  • z 将相应的参数按照size_t或size_t类型输出(仅适用于整数说明符:i、d、o、u、x、X和n,C99);
  • t 将相应的参数按照ptrdiff_t或ptrdiff_t无符号版本类型输出(仅适用于整数说明符:i、d、o、u、x、X和n,C99)。
#include 

运行结果:

1bbf8ae507f63f23051cb774ecb50b48.png
printf函数

源码地址:https://github.com/Hyacinth-fjk/CombinedLanguageIntroduction/blob/master/1.printf%E5%87%BD%E6%95%B0/printf.c

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值