一起talk C栗子吧(第一百八十一回:C语言实例--通过printf函数输出%)

来源:互联网 发布:淘宝上买的东西靠谱吗 编辑:程序博客网 时间:2024/05/16 09:51

各位看官们,大家好,上一回中咱们说的是break到哪里的例子,这一回咱们说的例子是:通过printf函数输出%。闲话休提,言归正转。让我们一起talk C栗子吧!

看官们, 我们今天介绍如何通过printf函数输出%。在介绍之前,大家想想,如何才能实现这个目标呢?这时台下有看官说话了:“使用转义字符“\”就可以了,因为%是一个特殊的符号,在printf函数中输出一些特殊符号时通常使用转义字符“。那我们就来按照这位看官的方法来试试。

#include<stdio.h>int main(){    printf("\%");    return 0;}

我们把上面的代码保存到一个文件中然后编译,编译时发现有编译警告,详细如下:

 warning: spurious trailing ‘%’ in format [-Wformat=]  printf("\%");  //这是使用gcc 4.8.4的编译结果,其它编译器的结果可能会有所不同

这是个测试程序,我们先忽略这个警告,接着运行编译完的程序,这时发现没有输出想要的%来,看来这个程序有问题,这也说明这种方法不可行。为什么呢?其实在printf函数中%是一个转义字符,它后面加上相应的字符时就会专门的含义,比如我们常用的%d表示输出int类型的数值,%c表示输出char类型的数值。而\也是一个转义字符,比如常用的\n表示换行。printf函数在处理转义字符时会检查转义字符后面的字符,然后对其做出处理。%和\这两个转义字符放在一起时,其行为是末定义的,因此gcc编译器给出了编译警告,而且生成的程序不能输出正确的结果。

正所谓两虎相争,必有一伤,两个不同的转义字符放在一起也是不合理的。这种办法行不通,那么我们怎么办呢?我给大家点提示:如何在printf函数中输出\呢?这时有看官回答说:“使用两个\转义字符,也就是printf("\\")";那么是不是转义字符%也可以通过这种方法输出呢?我们来动手试试:

#include<stdio.h>int main(){    printf("\\ \n");    printf("%% \n");    return 0;}

我们把上面的代码保存到一个文件中然后编译,编译很顺利,直接生成了可执行文件,我们接下来运行可执行文件,结果如下:

\   //正确输出转义字符\%   //正确输出转义字符%

各位看官,通过printf函数输出%的例子咱们就说到这里。欲知后面还有什么例子,且听下回分解 。


0 0
原创粉丝点击