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


各位看官们,大家好,上一回中咱们说的是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函数输出%的例子咱们就说到这里。欲知后面还有什么例子,且听下回分解 。


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

talk_8

真诚赞赏,手有余香

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值