标题:%% or \%
只看楼主
xiehou314159
Rank: 2
等 级:论坛游民
帖 子:35
专家分:86
注 册:2011-5-11
 问题点数:0 回复次数:7 
%% or \%
#include <stdio.h>

int main(int argc, char *argv[])
{
    printf("I want to print \%.\n");
    printf("I want to print %%.\n");

    return 0;
}

codeblocks(GCC)运行的结果是:
I want to print
I want to print %.

K&R在1.2节末提到,printf also recognizes %o for octal, ... and %% for itself.

C A Reference Manual第400页提到,Because a percent sign is used to indicate the beginning of a conversion specification, it is necessary to write two of them to have one printed. The complete conversion specification must be %%.

Standard C要求打印%必须用%%,但有些编译器要求不同,网上还有人说\%也可以打印%。

[ 本帖最后由 xiehou314159 于 2012-5-25 17:31 编辑 ]
搜索更多相关主题的帖子: necessary 400 conversion beginning indicate 
2012-05-25 17:00
xiehou314159
Rank: 2
等 级:论坛游民
帖 子:35
专家分:86
注 册:2011-5-11
得分:0 
发帖各种格式不对,纠结了好久

[ 本帖最后由 xiehou314159 于 2012-5-25 17:32 编辑 ]
2012-05-25 17:03
a7882669
Rank: 4
等 级:业余侠客
帖 子:192
专家分:290
注 册:2012-4-17
得分:0 
2012-05-25 17:15
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:0 
你想要怎样才满意呢?

授人以渔,不授人以鱼。
2012-05-25 18:49
xiehou314159
Rank: 2
等 级:论坛游民
帖 子:35
专家分:86
注 册:2011-5-11
得分:0 
回复 4楼 TonyDeng
编辑了N次才这样的,刚开始很乱
2012-05-25 18:57
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:0 
我是问你想要怎样输出%才满意

授人以渔,不授人以鱼。
2012-05-25 18:59
xiehou314159
Rank: 2
等 级:论坛游民
帖 子:35
专家分:86
注 册:2011-5-11
得分:0 
回复 6楼 TonyDeng
我是用%%输出,主要是没搞懂\%为什么标准C不支持,恰好我的编译器也不支持
2012-05-25 19:01
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:0 
ANSI C和K&R C是两种不同的C,虽然C语言是K&R发明的,但不等于他们说的就是标准和权威。ANSI标准化了的C修改了若干K&R原先不合理的部分,而“在转义字符\之后写非规定的序列,其作用确定为无定义”就是修改之一。现代多数编译器都支持ANSI C,不是K&R说了算的。

授人以渔,不授人以鱼。
2012-05-25 19:05



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-368030-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.401873 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved