欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-03-23 19:35:14
各位看官们,大家好,上一回中咱们说的是break到哪里的例子,这一回咱们说的例子是:通过printf函数输出%。闲话休提,言归正转。让我们一起talk c栗子吧! 看官们, 我们今天介绍如何通过pr...

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

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

#include

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

int main()
{
    printf("\\ \n");
    printf("%% \n");

    return 0;
}

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

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

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