- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
完全printf解析
printf()中的参数详解
1 格式化I/O函数族
函数族 用途 可用于所有的流 只用于stdin和stdout 内存中的字符串
scanf 格式化输入 fscanf scanf sscanf
printf 格式化输出 fprintf printf sprintf
2 scanf函数族
int fscanf (FILE *stream, const char *format, ...);
int scanf (const char *format, ...);
int sscanf (const char *string, const char *format, ...);
当格式化字符串到达末尾或者读取的输入不再匹配格式字符串所指定的类型时,输入就停止。
被转换的输入值的个数作为返回值返回。
如果在任何输入值被转换之前,输入流就已到达尾部,函数就返回EOF。
scanf族中的format字符串参数可能包含下列内容:
空白字符——它们与输入中的零个或多个空白字符匹配,在处理过程中将被忽略。
格式代码——它们指定函数如何解释接下来的输入字符。
其他字符——当任何其他字符出现在格式字符串时,下一个输入字符必须与它匹配。
如果匹配,该输入字符随后就被丢弃。如果不匹配,函数就不再读取直接返回。
3 scanf格式代码
格式:%
[宽度] [限定符]格式码
其中,[]表示可选项。
1 *
星号表示将使转换后的值被丢弃而不是进行存储。
2 宽度
宽度以一个非负的整数给出,它限制将被读取用于转换的输入字符的个数。
如果未给出宽度,函数就连续读入字符直到遇见输入中的下一个空白字符。
3 限定符
限定符用于修改有些格式代码的含义:
格式码 h l L
d,i,n short long
o,u,x unsigned short unsigned long
e,f,g double long double
4 格式码
格式码用于指定字符如何被解释:
代码 c
参数 char *
含义 读取和存储单个字符。前导空白字符并不跳过。如果给出宽度,就读取和存储这个数目的字符。字符后面不会添加一个NUL字节。参数必
须指向一个足够大的字符数组。
代码 i,d
参数 int *
含义 一个可选的有符号整数被转换。d把输入解释为十进制数;i根据它的第一个字符决定值的基数,就像整型字面值常量的表示形式一样。
代码 u,o,x
参数 unsigned *
含义 一个可选的有符号整数被转换,但它按照无符号数存储。如果使用u,值被解释为十进制数;如果使用o,值被解释为八进制数;如果使用
x,值被解释为十六进制数。X和x同义。
代码 e,f,g
参数 float *
含义 期待一个浮点值。它的形式必须像一个浮点型字面常量,但小数点并非必须。E和G分别与e和g同义。
代码 s
参数 char *
含义 读取一串非空白字符。参数必须指向一个足够大的字符数组。当发现空白时输入就停止,字符串后面会自动加上NUL终止符。
代码 [xxx]
参数 char *
含义 根据给定组合的字符从输入中读取一串字符。参数必须指向一个足够大的字符数组。当遇到第一个不在给定组合中出现的字符时,输入就
停止。字符串后面会自动加上NUL终止符。代码%[abc]表示字符组合包括a、b和c。如果列表以一个^字符开头,表示字符组合是所列字符的补集
,所以%[^abc]表示字符组合为a、b、c之外的所有字符。右方括号也可以出现在字符列表中,但它必须是列表的第一个字符。至于横杠是否用
于指定某个范围的字符(例如%[a-z]),则因编译器而异。
代码 p
参数 void *
含义 输入预期为一串字符,诸如那些由printf函数的%p格式代码所产生的输出。它的转换方式因编译器而异,但转换结果将和按照上面描述的
进行打印所产生的字符的值是相同的。
代码 n
参数 int *
含义 到目前为止通过这个scanf函数的调用从输入读取的字符数被返回。%n转换的字符并不计算在scanf函数的返回值之内。它本身并不消耗任
何输入。
代码 %
参数 (无)
含义 这个代码与输入中的一个%相匹配,该%符号被丢弃。
4 printf函数族
int fprintf (FILE *stream, const char *format, ...);
int pr
原创力文档


文档评论(0)