| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 472 人关注过本帖
标题:一个小程序运行结果不理解 求解释
只看楼主 加入收藏
甁瓶里D罐罐
Rank: 2
等 级:论坛游民
帖 子:34
专家分:20
注 册:2010-1-21
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:5 
一个小程序运行结果不理解 求解释
#include"stdio.h"
int main()
{
    int a=2,c=5;
    printf("a=%%d,c=%%d\n",a,c);
}
   这个程序的结果 为什么是a=%d c=%d呢 求原因 求解释
搜索更多相关主题的帖子: 结果 运行 解释 
2010-07-22 10:40
ggyy4k
Rank: 5Rank: 5
等 级:职业侠客
帖 子:111
专家分:334
注 册:2010-6-28
收藏
得分:15 
回复 楼主 甁瓶里D罐罐
在Turbo C中格式字符串的一般形式为: [标志][输出最小宽度][.精度][长度]类型 其中方括号[]中的项为可选项。各项的意义介绍如下:
1.类型类型字符用以表示输出数据的类型,其格式符和意义下表所示:
表示输出类型的格式字符       格式字符意义
d                 以十进制形式输出带符号整数(正数不输出符号)
o                 以八进制形式输出无符号整数(不输出前缀O)
x                 以十六进制形式输出无符号整数(不输出前缀OX)
u                 以十进制形式输出无符号整数
f                 以小数形式输出单、双精度实数
e                 以指数形式输出单、双精度实数
g                 以%f%e中较短的输出宽度输出单、双精度实数
c                 输出单个字符
s                 输出字符串
2.标志
标志字符为-、+、#、空格四种,其意义下表所示:
标志格式字符      标 志 意 义
-          结果左对齐,右边填空格
+          输出符号(正号或负号)空格输出值为正时冠以空格,为负时冠以负号
#          对c,s,d,u类无影响;对o类, 在输出时加前缀
o         对x类,在输出时加前缀0x;对e,g,f 类当结果有小数时才给出小数点
3.输出最小宽度
用十进制整数来表示输出的最少位数。 若实际位数多于定义的宽度,则按实际位数输出, 若实际位数少于定义的宽度则补以空格或0。
4.精度
精度格式符以“.”开头,后跟十进制整数。本项的意义是:如果输出数字,则表示小数的位数;如果输出的是字符, 则表示输出字符的个数;若实际位数大于所定义的精度数,则截去超过的部分。
5.长度
长度格式符为h,l两种,h表示按短整型量输出,l表示按长整型量输出。


关于printf函数的进一步说明:
如果想输出字符"%",则应该在“格式控制”字符串中用连续两个%表示,如:
printf("%f%%", 1.0/3);
输出0.333333%。

[ 本帖最后由 ggyy4k 于 2010-7-22 11:04 编辑 ]
2010-07-22 11:00
sunyh1999
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:14
帖 子:1178
专家分:3032
注 册:2009-5-17
收藏
得分:5 
%a(%A) 浮点数、十六进制数字和p-(P-)记数法(C99)
%c 字符
%d 有符号十进制整数
%f 浮点数(包括float和doulbe)
%e(%E) 浮点数指数输出[e-(E-)记数法]
%g(%G) 浮点数不显无意义的零"0"
%i 有符号十进制整数(与%d相同)
%u 无符号十进制整数
%o 八进制整数 e.g. 0123
%x(%X) 十六进制整数0f(0F) e.g. 0x1234
%p 指针
%s 字符串
%% 输出"%"

欢迎来到我的博客:http://blog..cn/noisunyuhong
2010-07-22 11:01
uppermore
Rank: 2
等 级:论坛游民
帖 子:33
专家分:26
注 册:2010-7-20
收藏
得分:0 
谢楼主,虽然我也不知道怎么回事,printf()函数没学好,本人新手。
不过,我想那个应该是类似于转义字符的,就象你想用printf输出引号(“”),就必须在前面加入斜杠(\),就像这样\",但是一直以来我都不知道怎么使用printf输出%,今天楼主倒是给了个方法,测试了一下,无论其他的如何改变,用两个连续的%就可以输出%了。
2010-07-22 11:03
甁瓶里D罐罐
Rank: 2
等 级:论坛游民
帖 子:34
专家分:20
注 册:2010-1-21
收藏
得分:0 
回复 2楼 ggyy4k
谢了 学习了
2010-07-22 11:07
zhu603809832
Rank: 1
等 级:等待验证会员
帖 子:5
专家分:0
注 册:2010-5-16
收藏
得分:0 
你是使用了两个%%的话,就不会把“%d”这种表达的意义表示出来的
2010-07-22 14:13
快速回复:一个小程序运行结果不理解 求解释
数据加载中...
 
   



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

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