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:

 

评分:0

我来说两句

日历

« 2024-04-27  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 66694
  • 日志数: 11
  • 建立时间: 2011-09-26
  • 更新时间: 2012-06-25

RSS订阅

Open Toolbar