| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1149 人关注过本帖
标题:对于格式化输入输出函数的总结
只看楼主 加入收藏
jxry8888
Rank: 1
等 级:新手上路
帖 子:97
专家分:0
注 册:2006-8-13
收藏
 问题点数:0 回复次数:2 
对于格式化输入输出函数的总结

"格式描述串"是由一系列的"格式转换说明符号"组成,格式转换说明符号的描述形式如下:
% [+][-] 0 m[.n] [输出精度] <形式字母>
(1)形式字母:制定输出格式,如表
d:十进制整型数
i:十进制整型数
x:十六进制整型数
o:八进制整型数
u:无符号十进制整型数
c:单个字符;
s:字符串
e:指数形式的浮点数
f:小数形式的浮点数
g:e和f中比较短的一种
p:显示变量所在的内存地址
n:它不是向printf()传递格式化信息,而是令printf()把自己已经输出的字符总数放到相应变元指
的整形变量中
%:符号%本身;
(2):输出精度如果形式字母是d,x,o.u,则可以指定如下两类精度
l:long型输出精度
h:short型输出精度
默认时为int型精度
如:long x=123454578;printf("%d",x);
如果形式字母为e,f,g的时候,则指定l的 时候为double精度,不指定为float精度;
(3):m[.n]指定输出长度,如果输出的是实例,则m表示该项输出占用字符位置的总长度,n表示小数部分的字

符长度,如float x=4.56;printf("%7.4f",x);
(4)0:指定不被使用的空位置填写0,入股不指定使用0,则不使用的位置为空白.该项仅仅对树枝输出时才可

以指定,对字符串输出不用指定.例如
int x=234;
printf("%05d",x);//00234
printf("%5d",x);//**234
(5)[+][-]:指定输出位置,如果指定+或者缺省时为右对齐,如果为"-"的时候为左对齐;

搜索更多相关主题的帖子: 整型 函数 八进制 内存 格式化 
2006-09-03 19:38
jxry8888
Rank: 1
等 级:新手上路
帖 子:97
专家分:0
注 册:2006-8-13
收藏
得分:0 
不过还想请教各位关于第一点中的 n:它不是向printf()传递格式化信息,而是令printf()把自己已经输出的字符总数放到相应变元指的整形变量中,这句话不理解?还请指点!

2006-09-03 19:53
soft_wind
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:1430
专家分:0
注 册:2006-4-5
收藏
得分:0 
%n令printf()把从字符串开始到%n位置已经输出的字符总数放到后面相应的输出项所指向的整型变量中,printf返回后,%n对应的输出项指向的变量中存放的整型值为出现%n时已经由printf函数输出的字符总数,%n对应的输出项是记录该字符总数的整型变量的地址.
举个最简单的例子:
#include "stdio.h"
int main(void)
{
int counter=0;
printf("iafjd%nfdfkjfa",&counter);
printf("%d",counter);
return 0;
}
这样counter的值为5.因为在%n之前的字符有5个.

对不礼貌的女生收钱......
2006-09-03 20:20
快速回复:对于格式化输入输出函数的总结
数据加载中...
 
   



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

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