Blogger Information
Blog 3
fans 0
comment 0
visits 10092
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
printf()的用法
见风就浪的博客
Original
1370 people have browsed it

printf()函数

  printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出

  信息。在编写程序时经常会用到此函数。函数的原型为:

  int printf(const char *format, ...);

  函数返回值为整型。若成功则返回输出的字符数,输出出错则返回负值。

  printf()函数的调用格式为:

  printf("<格式化字符串>", <参量表>);

//这里看输出很简单,前面的是固定的东西,后面是要输出的东西;而前面固定的东西分两部分:一部分是内容,另一部分是格式。

  其中格式化字符串包括两部分内容: 一部分是正常字符, 这些字符将按原

  样输出; 另一部分是格式化规定字符, 以"%"开始, 后跟一个或几个规定字符,

  用来确定输出内容格式。

  参量表是需要输出的一系列参数, 其个数必须与格式化字符串所说明的输出

  参数个数一样多, 各参数之间用","分开, 且顺序一一对应, 否则将会出现意想

  不到的错误。

  注意:函数printf从左往右读取,然后将先读取放到栈底,最后读取的放在栈顶,处理时候是从栈顶开始的,所以我们看见的结果是,从右边开始处理的。

  1. 格式化规定符

  Turbo C2.0提供的格式化规定符如下:

  ━━━━━━━━━━━━━━━━━━━━━━━━━━

编辑本段a 符号 作用

  ——————————————————————————

  %d 十进制有符号整数

  %u 十进制无符号整数

  %f 浮点数

  %s 字符串

  %c 单个字符

  %p 指针的值

  %e 指数形式的浮点数

  %x, %X 无符号以十六进制表示的整数

  %o 无符号以八进制表示的整数

  %g 自动选择合适的表示法

  %p 输出地址符

  ━━━━━━━━━━━━━━━━━━━━━━━━━━

  说明:

  (1). 可以在"%"和字母之间插进数字表示最大场宽。

  例如: %3d 表示输出3位整型数, 不够3位右对齐。

  %9.2f 表示输出场宽为9的浮点数, 其中小数位为2, 整数位为6,

  小数点占一位, 不够9位右对齐。

  %8s 表示输出8个字符的字符串, 不够8个字符右对齐。

  如果字符串的长度、或整型数位数超过说明的场宽, 将按其实际长度输出。

  但对浮点数, 若整数部分位数超过了说明的整数位宽度, 将按实际整数位输出;

  若小数部分位数超过了说明的小数位宽度, 则按说明的宽度以四舍五入输出。

  另外, 若想在输出值前加一些0, 就应在场宽项前加个0。

  例如: %04d 表示在输出一个小于4位的数值时, 将在前面补0使其总宽度

  为4位。

  如果用浮点数表示字符或整型量的输出格式, 小数点后的数字代表最大宽度,

  小数点前的数字代表最小宽度。

  例如: %6.9s 表示显示一个长度不小于6且不大于9的字符串。若大于9, 则

  第9个字符以后的内容将被删除。

  (2). 可以在"%"和字母之间加小写字母l, 表示输出的是长型数。

  例如: %ld 表示输出long整数

  %lf 表示输出double浮点数

  (3). 可以控制输出左对齐或右对齐, 即在"%"和字母之间加入一个"-" 号可

  说明输出为左对齐, 否则为右对齐。

  例如: %-7d 表示输出7位整数左对齐

  %-10s 表示输出10个字符左对齐

  2. 一些特殊规定字符

  ━━━━━━━━━━━━━━━━━━━━━━━━━━

编辑本段b 字符 作用

  ——————————————————————————

  \n 换行

  \f 清屏并换页

  \r 回车

  \t Tab符

  \xhh 表示一个ASCII码用16进表示,

  其中hh是1到2个16进制数

  ━━━━━━━━━━━━━━━━━━━━━━━━━━

  由本节所学的printf()函数, 并结合上一节学习的数据类型, 编制下面的程

  序, 以加深对Turbo C2.0数据类型的了解。

编辑本段示例

  #include<stdio.h>

  #include<string.h>

  int main(void)

  {

  char c, s[20], *p;

  int a=1234, *i;

  float f=3.141592653589;

  double x=0.12345678987654321;

  p="How do you do";

  strcpy(s, "Hello, Comrade");

  *i=12;

  c='\x41';

  printf("a=%d\n", a); /*结果输出十进制整数a=1234*/

  printf("a=%6d\n", a); /*结果输出6位十进制数a= 1234*/

  printf("a=%06d\n", a); /*结果输出6位十进制数a=001234*/

  printf("a=%2d\n", a); /*a超过2位, 按实际值输出a=1234*/

  printf("*i=%4d\n", *i); /*输出4位十进制整数*i= 12*/

  printf("*i=%-4d\n", *i); /*输出左对齐4位十进制整数*i=12*/

  printf("i=%p\n", i); /*输出地址i=06E4*/

  printf("f=%f\n", f); /*输出浮点数f=3.141593*/

  printf("f=6.4f\n", f); /*输出6位其中小数点后4位的浮点数

  f=3.1416*/

  printf("x=%lf\n", x); /*输出长浮点数x=0.123457*/

  printf("x=%18.16lf\n", x);/*输出18位其中小数点后16位的长浮点

  数x=0.1234567898765432*/

  printf("c=%c\n", c); /*输出字符c=A*/

  printf("c=%x\n", c); /*输出字符的ASCII码值c=41*/

  printf("s[]=%s\n", s); /*输出数组字符串s[]=Hello, Comrade*/

  printf("s[]=%6.9s\n", s);/*输出最多9个字符的字符串s[]=Hello,

  Co*/

  printf("s=%p\n", s); /*输出数组字符串首字符地址s=FFBE*/

  printf("*p=%s\n", p); /* 输出指针字符串p=How do you do*/

  printf("p=%p\n", p); /*输出指针的值p=0194*/

  getch();

  retunr 0;

  }

  上面结果中的地址值在不同计算机上可能不同。

  例.中第一条语句#include<stdio.h>的含义是调用另一个文件stdio.h, 这

  是一个头文件, 其中包括全部标准输入输出库函数的数据类型定义和函数说明。

  Turbo C2.0对每个库函数便用的变量及函数类型都已作了定义与说明, 放在相应

  头文件"*.h"中, 用户用到这些函数时必须要用#include<*.h>或#include"*. h"

  语句调用相应的头文件, 以供连接。若没有用此语句说明, 则连接时将会出现错

  误。

  printf()和sprintf()在php中的应用

  <?php

  printf("$%01.2f", 43.2); // 运行结果:$43.20

  echo "

  ";

  printf("%d bottles of beer on %s", 100, "the wall");

  echo "

  ";

  //运行结果:100 bottles of beer on the wall

  printf("%15s", "some text"); //运行结果:some text

  ?>

  <?php

  echo "

  ";

  printf("The %2\$s likes to %1\$s", 111, dog);

  echo "

  ";

  //运行结果: The dog likes to bark

  printf("The %1\$s says: %2\$s, %2\$s.", "dog", "bark");

  //运行结果:The dog says: bark, bark.

  ?>

  <?php

  echo "

  ";

  $var1 = 68.75;

  $var2 = 54.35;

  $var3 = $var1 + $var2;

  echo $var3;

  echo "

  ";

  // 变量 $var3 值为 "123.1";

  $formatted = sprintf ("%01.2f", $var3);

  echo "

  ";

  echo $formatted;

  // 变量$var3 值为 "123.10"

  ?>

  <?php

  echo "

  ";

  $money = 1.4;

  $formatted = sprintf ("%-01.2f", $money);

  echo $formatted;

  ?>

  结果:

  $43.20

  100 bottles of beer on the wall

  some text

  The dog likes to 111

  The dog says: bark, bark.

  123.1

  123.10

  1.40

Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post