C语言中的输出格式问题、转换方向以及转义字符

输出格式控制

  • %c 输出一个字符
  • %% 百分号本身
  • %s 输出一个字符串
  • 在格式控制符中加上==#==前缀即可输出前缀
  • %hd%d%ld 以十进制、有符号的形式 short 、int、long类型的整数
  • %hu%u%lu 以十进制、无符号的形式 short 、int、long类型的整数
  • %ho%o%lo 以八进制、不带前缀、无符号的形式 short 、int、long类型的整数
  • %#ho%#o%#lo 以八进制、带前缀、无符号的形式 short 、int、long类型的整数
  • %f%lf 以十进制形式输出 float 、double类型的小数
  • %e%E 以指数形式输出 float 类型,输出结果中的e小写(输出结果中的E大写)
  • %le%lE 以指数形式输出 double 类型,输出结果中的e小写(输出结果中的E大写)
  • %hx%x%lx中的x小写,表明以小写字母的形式输出十六进制数
  • %hX%X%lX中的X小写,表明以大写字母的形式输出十六进制数
  • %g 对比小数的十进制形式和指数形式,以最短的方式来输出小数,让输出结果更加简练
  • printf()格式控制符完整形式:
%[flag] [width] [.precision] type

[ ] 表示此处内容可有可无,是可以省略的;
type 表示输出类型,比如%d、%f、%c,type这项必须有,这意味着输出是必须知道是什么类型;
width 表示最小输出宽度,也就是至少占用几个字符的位置;当输出结果不足width时, 以空格补齐 (如果没有指定对齐方式,默认会在左边补齐空格);当输出宽度超过width时,width不再起作用, 按照数据本身的宽度来输出;

对于printf()函数执行结束时数据并不会直接输出到显示器上,而是放入了缓冲区,直到遇到了换行符\n。

.precision 表示输出精度,也就是小数的位数。
1. 当小数部分位数大于precision时,会按照四舍五入的原则丢掉多余的数字;
2. 当小数部分小于precision时,会在后面补0;
3. 用于整数时,precision表示最小输出宽度,与width不同的是,整数宽度不足时会在左边补0,而不是补空格
4. 用于字符串是,.precision表示最大输出宽度,或者说截取字符串。当字符串的长度大于precision时,会截掉多余的字符;当字符串长度小于precision时,precision不再起作用。
5. -表示左对齐,默认是右对齐。

转义字符

  • \a 响铃
  • \b 退格
  • \f 换页
  • \n 换行,将当前位置移到下一行开头
  • \r 回车,将当前位置移到本行开头
  • \t 水平制表
  • \v 垂直制表
  • 单引号
  • " 双引号
  • \ddd 任意三位八进制数
  • \xhh 任意两位十六进制数
  • \\ 反斜杠

代码演示

 #include <stdio.h>
  2 
  3 int main()
  4 {
  5     char ch='C';
  6     char str[]="你好,北京";
  7     char *p=str;
  8     short sh=15;
  9     short int zh=156;
 10     int a=261;
 11     long int li=3721;
 12     long l=48321;
 13     float f=95.60;
 14     double d=3.1415926;
 15     char *q="zh\a\ngrong\r\n";
 16     printf("ch=%c\r\nsh=%d\r\nzh=%hd\r\na=%d\r\nli=%ld\r\nf=%f\r\nd=%lf\r\ns    tr[]=%s\r\np=%s\r\nq=%s\r\n",ch,sh,zh,a,li,f,d,str,p,q);
 17     return 0;
 18     }

输出结果

在这里插入图片描述

注意点

  1. f我们输入的是95.60,默认给了我们一个六位小数,一般默认输出六位,当不够时,会输出一个非常接近的值,这与小数本身的存储机制有关。
  2. 当小数超过六位时,会四舍五入取近似值。
  3. 转义字符占用一个字符。
  4. 转换按数据长度增加的方向进行,以保证数据不失真,或者精度不下降。例如,int和long运算时,先将int类型转换为log类型后进行运算。
  5. 所有的浮点类型都是以双精度进行的,即使只有float类型,也要先转换为double类型,才能进行运算。
  6. char和short进行运算时,必须先转换为int类型。
  • 5
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值