| |
| 统计
|
- 随笔 - 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 |
String,char |
打印 char or string,宽字符打印,不喜欢用 W2A的用这个 sprintf(str,"%ws",L"abcde"); |
|
d,i,I64I32,I |
Int |
十进制整形 I64d, i64d 打印64位整形 ui64d无符号64位整形, 末尾d不是必须,I 与平台相关。 |
|
l(小写L) ,ll |
Int |
长整型 printf( "%ld", myFunc), ll 为(long,long) |
|
h |
Int |
短整形,四字节截取成双字节。 |
|
L |
Double,float |
打印成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 p±dd |
|
A |
double |
有符号,双精度浮点数指针地址 0Xh.hhhh P±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
-
日期: 2007-11-09 14:38
哈哈
-
日期: 2007-11-10 03:02
你不列出点啥,你哈哈啥呀~~
-
日期: 2008-09-27 10:40
0, #, -, +,(space)
#ne
|
|