曲径通幽论坛

 找回密码
 立即注册
搜索
查看: 4376|回复: 0
打印 上一主题 下一主题

sprintf, fprintf, Printf[2]

[复制链接]

4918

主题

5880

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34395
跳转到指定楼层
楼主
发表于 2009-2-11 12:33:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用法
#include <stdio.h>
int printf(const char *format, ...);
int sprintf(char *s, const char *format, ...);
int fprintf(FILE *stream, const char *format, ...);

printf 函数从标准输出上输出它的“输出内容”。
fprintf 函数在一个指定流上输出它的“输出内容”。
sprintf


要打印 % ,需要使用 %% 形式。

当用的转换说明符:
%d,%i :  打印一个10进制整数
%o,%x : 分别打印一个八进制和十六进制整数
%c :     打印一个字符
%s :     打印一个字符串
%f :   打印一个浮点型(单精度)数
%e :     打印一个双精度数,固定的格式
%g :     打印一个double型数据,通用格式

可选的尺寸(size)说明符来说明整数声明的类型,如:
h :   %hd  表示 short int 类型
l  :   %ld   表示 long int 类型

通过用域说明符,可以很有力的控制项目(way itmes)被打印出来。这些对转换说明符(conversion specifiers)进行了扩展以包含控制输出的间距(spacing)。一个常用法是对浮点数的小数位(decimal places)进行设置或者一个字符串前后的空格数量。

域说明符以数字的形式给出,在转换说明符中它紧跟着 % 符号。

如下所示:
Format             Argument                 |Output|
%10s               "Hello"                |           Hello|
%-10s              "Hello"                |Hello           |
%10d                 1234                |            1234|
%-10d                1234                |1234            |
%010d                1234                |0000001234      |
%10.4f               12.34                |        12.3400|
%*s                10,"Hello"             |           Hello|
--------------------------------------------------------------
上面所有的例子都以10个字符的宽度打印出来。一个负的域宽度(a negative field width)意味着这条目在域内是左对齐的。一个变量域宽度由星号(*,asterisk)指出。在这种情况里,下一个声明(argument)被用作宽度。最前面为0,表示这个条目前面都由0来扩充。根据POSIX规定,printf 不会削减(truncate)域,而是它会把域扩展直至适应超出的宽度。例如:

Format     Argument          |Output|
%10s   “HelloTherePeeps”  |HelloTherePeeps|

* 号用法示例
#include <stdio.h>

int main()
{
        char *s = "hello world!";

        printf("%*s\n",30,s);

        return 0;
}

输出结果
[root@localhost C]# ./printf_test.exe
                  hello world!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|曲径通幽 ( 琼ICP备11001422号-1|公安备案:46900502000207 )

GMT+8, 2025-5-7 07:39 , Processed in 0.077712 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表