关于C语言int类型输出的问题

2025-03-10 06:50:58
推荐回答(5个)
回答1:

%5.2 5表示宽度至少为5位,不够以空格填充,大于5位的时候按照实际宽度输出 2表示最大小数位数

以下内容 copy 希望对你有帮助

int printf(const char *format,[argument]);

  format 参数输出的格式,定义格式为:

  %[flags][width][.perc] [F|N|h|l]type

  规定数据输出方式,具体如下:

  1.type 含义如下:

  整数
%d 整数的参数会被转成一有符号的十进制数字
%u 整数的参数会被转成一无符号的十进制数字
%o 整数的参数会被转成一无符号的八进制数字
%x 整数的参数会被转成一无符号的十六进制数字,并以小写abcdef表示
%X 整数的参数会被转成一无符号的十六进制数字,并以大写ABCDEF表示浮点型数

%f double 型的参数会被转成十进制数字,并取到小数点以下六位,四舍五入。
%e double型的参数以指数形式打印,有一个数字会在小数点前,六位数字在小数点后,而在指数部分会以小写的e来表示。
%E 与%e作用相同,唯一区别是指数部分将以大写的E 来表示。
%g double 型的参数会自动选择以%f 或%e 的格式来打印,其标准是根据欲打印的数值及所设置的有效位数来决定。
%G 与%g 作用相同,唯一区别在以指数形态打印时会选择%E 格式。

字符及字符串
%c 整型数的参数会被转成unsigned char型打印出。
%s 指向字符串的参数会被逐字输出,直到出现NULL字符为止
%p 如果是参数是“void *”型指针则使用十六进制格式显示,near指针表示为:XXXX,far 指针表示为:XXXX:YYYY

  %% 显示百分号本身 

  %n 相连参量应是一个指针,其中存放已写字符的个数

  2.flags 规定输出格式,取值和含义如下:

  无右对齐,左边填充0和空格

  - 左对齐,右边填充空格

  + 在数字前增加符号 + 或 -

  一个空格只对负数显示符号

  # 当type=c,s,d,i,u时没有影响

   type=o,x,X时,分别在数值前增加'0',"0x","0X"

   type=e,E,f时,总是使用小数点

   type=g,G时,除了数值为0外总是显示小数点

3.width 用于控制显示数值的宽度,取值和含义如下

n(n=1,2,3...) 宽度至少为n位,不够以空格填充

  0n(n=1,2,3...) 宽度至少为n位,不够左边以0填充 *

格式列表中,下一个参数还是width

4..prec 用于控制小数点后面的位数,取值和含义如下:

  无按缺省精度显示

  0 当type=d,i,o,u,x时,没有影响

   type=e,E,f时,不显示小数点

  n(n=1,2,3...) 当type=e,E,f时表示的最大小数位数

   type=其他,表示显示的最大宽度 .*

  格式列表中,下一个参数还是width

  5.F|N|h|l 表示指针是否是远指针或整数是否是长整数

  F 远指针

  n 近指针

  h 短整数或单精度浮点数

  l 长整数或双精度浮点数

回答2:

整数如果控制长度小于实际长度则全部输出,如果控制长度大于实际长度则左侧补空格使长度满足。实数由m.n来控制总长度和小数部分长度,先由n确定小数部分,再看总长度是否大于控制总长度。如果大于控制总长度则整数部分无变化输出,如果总长度小于控制总长度则整数部分前面还要加空格补齐总长度。满意请给最佳。

回答3:

int型的超过指定长度(这里是2)就按照实际长度输出,float型的5.2指的是一共有输出五位,其中小数点后占两位 超过长度跟上面一样按实际输出 那么 整数部分应该是3位 实际4位数字所以输出1234,小数部分截取2位有效数字输出

回答4:

%5.2f就相当于.2f也就是说精确二位小数
5.2f共占5列 其中有2位小数

回答5:

似乎是这样子的。。%5d,这里的5只对整形类型的数据起作用,控制输出长度,浮点型似乎没有。。。