43 C语言数据输出大汇总以及轻量进阶
来源:互联网 发布:php sendmail path 编辑:程序博客网 时间:2024/06/05 06:52
C学习网:链接->C学习网
C训练网:链接->C训练网
在C语言中,有三个函数可以用来在显示器上输出数据:
- puts():只能输出字符串,在《C语言在屏幕上显示内容》中已经进行了介绍。
- putchar():只能输出单个字符,本节将会介绍。
- printf():可以输出各种类型的数据,在《在屏幕上输出各种类型的数据》《C语言中的整数》中都进行了介绍,本节要进行更加深入的讲解。
printf() 是最灵活、最复杂、最常用的输出函数,完全可以替代 puts() 和 putchar(),大家一定要掌握。
putchar()
putchar() 函数只能用来输出单个字符,例如:
- #include <stdio.h>
- #include <stdlib.h>
- int main()
- {
- putchar('a');
- putchar(7);
- putchar('\x46');
- system("pause");
- return 0;
- }
关于换行
puts() 函数在输出结束时会自动换行,而 printf() 和 putchar() 不会,需要手动添加换行符\n
。如下所示:
- #include <stdio.h>
- #include <stdlib.h>
- int main()
- {
- char *str = "c.biancheng.net";
- int n = 100;
- char c = 'Z';
- puts(str);
- putchar(c);
- printf("%d", n);
- putchar(c);
- system("pause");
- return 0;
- }
c.biancheng.net
Z100Z请按任意键继续. . .
printf() 的高级用法
这一节的内容有些繁杂,如果你希望加快学习进度,尽早写出有趣的代码,也可以跳过这节,后面遇到不懂的 printf 输出再来回顾。虽然我们已经熟悉了 printf,但是还没有把它发挥到极致,printf 可以有更加“炫酷”的输出。
假如现在老师要求我们用C语言输出一个 4×4 的整数矩阵,为了增强阅读性,数字要对齐,怎么办呢?我们显然可以这样来做:
- #include <stdio.h>
- #include <stdlib.h>
- int main()
- {
- int a1=20, a2=345, a3=700, a4=22;
- int b1=56720, b2=9999, b3=20098, b4=2;
- int c1=233, c2=205, c3=1, c4=6666;
- int d1=34, d2=0, d3=23, d4=23006783;
- printf("%d %d %d %d\n", a1, a2, a3, a4);
- printf("%d %d %d %d\n", b1, b2, b3, b4);
- printf("%d %d %d %d\n", c1, c2, c3, c4);
- printf("%d %d %d %d\n", d1, d2, d3, d4);
- system("pause");
- return 0;
- }
20 345 700 2256720 9999 20098 2233 205 1 666634 0 23 23006783
矩阵一般在大学的《高等数学》中会讲到,m×n 的数字矩阵可以理解为把 m×n 个数字摆放成 m 行 n 列的样子。看,这是多么地自虐,要敲那么多空格,还要严格控制空格数,否则输出就会错位。
类似的需求随处可见,整齐的格式会更加美观,让人觉得生动有趣。我们大可不必像上面一样,printf 可以更好的控制输出格式。
- #include <stdio.h>
- #include <stdlib.h>
- int main()
- {
- int a1=20, a2=345, a3=700, a4=22;
- int b1=56720, b2=9999, b3=20098, b4=2;
- int c1=233, c2=205, c3=1, c4=6666;
- int d1=34, d2=0, d3=23, d4=23006783;
- printf("%-9d %-9d %-9d %-9d\n", a1, a2, a3, a4);
- printf("%-9d %-9d %-9d %-9d\n", b1, b2, b3, b4);
- printf("%-9d %-9d %-9d %-9d\n", c1, c2, c3, c4);
- printf("%-9d %-9d %-9d %-9d\n", d1, d2, d3, d4);
- system("pause");
- return 0;
- }
20 345 700 2256720 9999 20098 2233 205 1 666634 0 23 23006783
这样写起来更加方便,即使改变某个数字,也无需修改 printf 语句。%-9d
中,d
表示以十进制输出,9
表示最少占9个字符的宽度,宽度不足以空格补齐,-
表示左对齐。综合起来,%-9d
表示以十进制输出,左对齐,宽度最小为9个字符。大家可以亲自试试%9d
的输出效果。printf 格式控制字符的完整形式如下:
%[flags][width][.precision]type
[xxx] 并不是C语言规定的格式,只是一种习惯写法,表示此处的内容可有可无,后面会经常见到这样的写法。1) type 也就是以什么类型输出,比如 %d、%f、%c,type 就分别对应 d、f、c;
%-9d
中 type 对应 d。type 必须有。2) width 表示最小输出宽度,也就是占几个字符的位置;
%-9d
中 width 对应 9。对于整数和小数,默认右对齐,不足的宽度以空格补齐,例如:
printf("%10d%12f", 234, 9.8);
输出结果为: 234 9.800000
234 前面共有7个空格,9.8 前面有4个空格。3) .precision 表示输出精度。
对于 %d,.precision 表示的其实是最小输出宽度,与 width 不同的是,不足的宽度以 0 补齐,例如:
printf("%.10d\n", 4309);
输出结果为:0000004309
对于 %f,.precision 表示小数的位数,不足以 0 补齐,也就是精度,例如:
printf("%.10f %.3f\n", 23.988, 2.9328745);
输出结果为:23.9880000000 2.933
4) flags 是标志字符,
%-9d
中 flags 对应-
。对o类,在输出时加前缀o;
对x类,在输出时加前缀0x;
对e、g、f 类当结果有小数时才给出小数点。
有兴趣的读者可以猛击这里查看更多关于 printf 的输出格式。printf 的这些格式规范不是“小把戏”,优美的输出格式随处可见,例如 dos 下的 dir 命令,会整齐地列出当前目录下的文件:
阅读全文
0 0
- 43 C语言数据输出大汇总以及轻量进阶
- C语言封装的轻量线程环境 Protothreads
- Markdown: 轻量标记语言
- CoreData 轻量数据升级
- CoreData 轻量数据升级
- Unity轻量数据保存
- C语言输出格式汇总
- C语言:数据输出
- C语言入门与进阶书籍汇总
- 轻量标记语言的比较
- Java语言cron4j轻量调度框架
- Django多语言翻译轻量解决方案
- Java_JavaEE_轻量_Struts2数据校验流程;
- C++入门教程2015最新版(轻量进阶)
- Windows GDI绘图基础与轻量进阶
- 大数据 以及数字格式化输出
- C语言面试题大汇总
- C语言面试题大汇总
- C++连接CTP接口实现简单量化交易(行情、交易、k线、策略)
- 关于C与C++的区别
- call/apply let const
- #pragma pack (push,1) and #pragma pack(pop)
- vim 批量注释
- 43 C语言数据输出大汇总以及轻量进阶
- 浅析Java中的final关键字
- 听云集成
- QT图片拉伸填充
- I2C协议介绍
- QLatin1String类的说明
- 《C++覆辙录》——1.9:使用糟糕的语言
- 【JMeter 菜鸟实操之四】接口自动化测试实施(数据驱动)
- webuploader 文件上传插件 IE8/9 文件选择不上传