导航
随笔档案
文章档案
相册

统计
  • 随笔 - 3
  • 文章 - 0
  • 评论 - 14
  • Trackbacks - 0

今天看见一个%p,一愣神,竟然不会用,干脆把这些东东列表出来. 你会的这里如果没列出来,就贴在下面。这里是Ansi C + Microsoft C++, 没有其他平台的或者java的 

 

Character

Type

Output format

返回值

 

sprintf(myString, "address [%0*d]\n",8, myFunc) 返回值是 strlen(myString) 或者说缓冲区实际长度.

* (.*)

all

这个字符用法为不定长的长度,例如%2d%3d, %*n , %.*f , etc;

printf( "address [%0*d]\n",8, myFunc) == printf( "address [%08d]\n", myFunc);

%

None

%% 打印一个%

0, #, -, +,(space)

 

0,+, -, 为右对齐或者左对齐。例如 printf(“%-8d%8d”,1234,5677), 默认为右对齐(“+”), 0做补位填充使用

Space为空位,如果是space”+”,没有其他,这些space将被忽略, #

c

int or int_t

单个字符,如果使用 wprintf 将是宽字符

C

int or int_t

宽字符 如果使用 wprintf 将是单字符

s

String

单字节字符串使用printf 如果使用 wprintf 就是宽字符串,如果空串,结果是"(null)"

S

String

宽字符串使用printf 如果使用 wprintf 就是单字节字符串,如果空串,结果是"(null)"

w

Stringchar

打印 char or string,宽字符打印,不喜欢用 W2A的用这个 sprintf(str,"%ws",L"abcde");

d,iI64I32I

Int

十进制整形 I64d, i64d 打印64位整形 ui64d无符号64位整形, 末尾d不是必须,I 与平台相关。

l(小写L) ll

Int

长整型 printf( "%ld", myFunc) ll (long,long)

h

Int

短整形,四字节截取成双字节。

L

Doublefloat

打印成Long double 类型. 作用于 e,E,f,g,G

o

int

八进制无符号整形

u

int

无符号整形

x

int

无符号十六进制整形,小写 “abcdef”

X

int

无符号十六进制整形,大写 “ABCDEF”

e

double

3.9265e+2,幂形式的浮点数,小写e

E

double

3.9265E+2,幂形式的浮点数,大写E

f

double

打印单精度浮点数

g

double

短的 %e 或者%f

G

double

短的 %E 或者%f

a

double

有符号,双精度浮点数指针地址 0Xh.hhhh dd

A

double

有符号,双精度浮点数指针地址 0Xh.hhhh dd

n

Pointer to integer

到目前为止缓冲区都有啥取之. printf( "12345%n6789\n", &i ); i就等于5

p

Pointer to void

打印物理地址,相当于 printf( "%0*x", 2 * sizeof(void *), &i);

 

发表于 2007-10-31 00:12 brent哥哥 阅读(1565) 评论(3)  编辑 收藏
Comments
  • # re: printf使用小全
    gaoqing000
    日期: 2007-11-09 14:38
    哈哈
  • # re: printf使用小全
    brent哥哥
    日期: 2007-11-10 03:02
    你不列出点啥,你哈哈啥呀~~
  • # re: printf使用小全
    dafg
    日期: 2008-09-27 10:40
    0, #, -, +,(space)

    #ne
标题  
姓名  
主页
验证码 *
内容   
  登录  使用高级评论  Top
[使用Ctrl+Enter键可以直接提交]
┋ 关于本站 ┋ 广告服务 ┋ 项目合作 ┋ 联系方式 ┋ 版权声明 ┋ 技术支持 ┋
Copyright © 2003-2004 All Rights Reserved
版权所有 © 2003-2004 (布伦特原油)