c++ printf使用及参数详解
上一篇 /
下一篇 2012-06-25 14:45:50
/ 个人分类:开发语言
printf
产生格式化输出的函数(定义在 stdio.h 中)。 int printf(const char *format,[argument]); format 参数输出的格式,定义格式为:%[flags][width][.perc][F|N|h|l]type 规定数据输出方式,具体如下: 1.type 含义如下: d 有符号10进制整数 i 有符号10进制整数 o 无符号8进制整数 u 无符号10进制整数 x 无符号的16进制数字,并以小写abcdef表示 X 无符号的16进制数字,并以大写ABCDEF表示 f 浮点数 E/e 用科学表示格式的浮点数 g 使用%f和%e表示中的总的位数表示最短的来表示浮点数 G 同g格式,但表示为指数 c 单个字符 s 字符串 S wchar_t字符(宽字符)类型字符串 % 显示百分号本身 p 显示一个指针
,near指针表示为:XXXX far 指针表示为:XXXX:YYYY n 相连参量应是一个指针,其中存放已写字符的个数 2.flags 规定输出格式,取值和含义如下: 无 右对齐,左边填充0和空格 - 左对齐,右边填充空格 + 在数字前增加符号 + 或 - 0 将输出的前面补上0,直到占满指定列宽为止(不可以搭配使用-) 空格 输出值为正时冠以空格,为负时冠以负号 # 当type=c,s,d,i,u时没有影响 type=o,x,X时,分别在数值前增加'0',"0x","0X" type=e,E,f时,总是使用小数点 type=g,G时,除了数值为0外总是显示小数点 3.width 用于控制显示数值的宽度,取值和含义如下 n(n=1,2,3...) 宽度至少为n位,不够以空格填充 0n(n=1,2,3...) 宽度至少为n位,不够左边以0填充 * 格式列表中,下一个参数还是width 4.prec 用于控制小数点后面的位数,取值和含义如下: 无 按缺省精度显示 0 当type=d,i,o,u,x时,没有影响 type=e,E,f时,不显示小数点 n(n=1,2,3...) 当type=e,E,f时表示的最大小数位数 type=其他,表示显示的最大宽度 .* 格式列表中,下一个参数还是width 5.F|N|h|l 表示指针是否是远指针或整数是否是长整数 F 远指针 n 近指针 h 短整数或单精度浮点数 l 长整数或双精度浮点数 printf函数的一般形式为: int printf(const char *format,[argument]); 以上形式,我们在Visual C++里输入“printf(”将会看到。 说明printf函数类型为整型,其返回值是整型值。 其值实际为printf控制输出的字符数。 printf()
函数实际上是将所有参数按字符输出,根据该函数的参数1(const char *format),我们不难理解。 例如: int a,b; a=printf("gelin\n"); //a的值为6, b=printf("the value of printf is:%d",a); //b的值为24 printf("\n%d\n",b); 以上程序将会输出:例一
#define
C "gelin" int main(void) { int a=12345; float b=5.12345678; char e,d,f; scanf("%c%c%c",&e,&d,&f); //分别演示:%d、%4d、%.4d、%d%*d%d printf("int is:%d\n",a); //分别演示:%d、%9d、%.9d、%8.4d、%-8.4d、%+8.4d printf("float is:%f\n",b); //分别演示:%f、%8f、%.4f、%8.4f、%-8.4f printf("char is:%s\n",C); //分别演示:%s、%8s、%.4s、%8.4s、%-8.4s return 0; }例二
printf也可以这样用: printf("123\n""456\n""789\n"); 输出: 123 456 789 注意: printf("123\n" "456\n" "789\n");的输出结果与printf("123\n");printf("456\n");printf("789\n");相同。 因此输出多行时,也并不需要每行调用一次printf。例三
妙用printf判断闰年程序 #include<stdio.h> int main(void) { int a; scanf("%d",&a); printf("%s",a%(a%100?4:400)?"NO":"YES"); return 0; }例四
#include <stdio.h> #include<string.h> int main() { char ch[20]; int m,n; strcpy(ch,"Happy!"); scanf("%d%d",&m,&n); printf("%*.*s\n",m,n,ch); return 0; } 其中前边*定义的是总的宽度,后边*是指定输出字符个数。分别对应外边参数m和n。 输入: 10 3 输出: Hap
转载自http://baike.baidu.com/view/410546.htm
收藏
举报
TAG: