c代码规范 编程代码大全

赏心悦目的C语言输出

c代码规范 编程代码大全

文章插图
C语言的输出功能 , 超出你的想象 , 你能想到的 , 她基本也能做到 。
刚开始还只是照抄printf语句 , 老是出现下面的情况:
Hello World% $
后面才晓得 printf 函数是有特殊规定字符的 , 比如换行的 \\\\\\\\n , 换页的 \\\\\\\\f , 回车的 \\\\\\\\r , 以及制表符 \\\\\\\\t 等 。
这次就说说是个什么意思以及如何使用 。
本节尽量只使用 printf 函数 , 除非 有必要 , 尽量简洁 , 然后举几个用的最广的例子 。
换行显示文本
printf要完成的功能就是显示文本 , 比如最简单的:
/*beginner/print/print1.c*/#include <stdio.h>int main(){printf(\\\\\\”Hello World\\\\\\\\n\\\\\\”);return 0;}
比如我们想打印一首诗 , 原文是
Hickory, dickory, dock,
The mouse ran up the clock.
The clock struck one,
The mouse ran down,
Hickory, dickory, dock.
这个简单呀 , 直接输入下面的代码
/*beginner/print/print2.c*/#include <stdio.h>int main(){printf(\\\\\\”Hickory, dickory, dock,\\\\\\”);printf(\\\\\\”The mouse ran up the clock.\\\\\\”);printf(\\\\\\”The clock struck one,\\\\\\”);printf(\\\\\\”The mouse ran down,\\\\\\”);printf(\\\\\\”Hickory, dickory, dock.\\\\\\”);return 0;}
输出是什么的
Hickory, dickory, dock,The mouse ran up the clock.The clock struck one,The mouse ran down,Hickory, dickory, dock.%
这就是没有添加换行符的原因 , 加上以后如下所示:
/*beginner/print/print3.c*/#include <stdio.h>int main(){printf(\\\\\\”Hickory, dickory, dock,\\\\\\\\n\\\\\\”);printf(\\\\\\”The mouse ran up the clock.\\\\\\\\n\\\\\\”);printf(\\\\\\”The clock struck one,\\\\\\\\n\\\\\\”);printf(\\\\\\”The mouse ran down,\\\\\\\\n\\\\\\”);printf(\\\\\\”Hickory, dickory, dock.\\\\\\\\n\\\\\\”);return 0;}
优雅的输出如下所示:
Hickory, dickory, dock,
The mouse ran up the clock.
The clock struck one,
The mouse ran down,
Hickory, dickory, dock.
回车显示进度条效果
其实回车的意思并不是通俗意义上的回车 , 你敲下键盘 , 叫做Enter , 是另外一种回车 。
这里的回车是不换行从头开始的意思 , 是ASCII码为13的特殊字符 , 换行是ASCII码为10的特殊字符 。
这个示例只能通过自己编译来使用了 , 代码简单 , 如下 , 就能看到进度条的效果了
/*beginner/print/print4.c*/#include <stdio.h>#include <unistd.h>int main(){printf(\\\\\\”*\\\\\\\\r\\\\\\”);fflush(stdout);sleep(1);printf(\\\\\\”*****\\\\\\\\r\\\\\\”);fflush(stdout);sleep(1);printf(\\\\\\”*******\\\\\\\\r\\\\\\”);fflush(stdout);sleep(1);printf(\\\\\\”*********\\\\\\\\r\\\\\\”);fflush(stdout);sleep(1);printf(\\\\\\”*************\\\\\\\\r\\\\\\”);fflush(stdout);sleep(1);printf(\\\\\\”*****************\\\\\\\\r\\\\\\”);fflush(stdout);sleep(1);printf(\\\\\\”*********************\\\\\\\\r\\\\\\”);fflush(stdout);sleep(1);printf(\\\\\\”\\\\\\\\n\\\\\\\\n\\\\\\”);return 0;}
运行的时候 , 可以看到光标在移动 , 这个用法我是学了2个多月才知道 , 悲哉!
说明:fflush是用来强行刷新的 , 因为如果不刷新 , 有的时候无法显示 , 另外sleep是为了演示移动效果 , 不然毫秒级显示完成 , 就看不到效果了 。