C格式化输入输出

 先附上示例源码:

#include <stdio.h>
#include
<stdlib.h>

int main(int argc, char *argv[])
{
//定义 摄氏、华氏变量
//温度上限、下限、步长
//循环输出目标值

int fahr,celsius; //华氏、摄氏变量
int lower,upper,step;

lower
=0;
upper
=300;
step
=20;

for(fahr=lower; fahr<=upper; fahr=fahr+step)
{
celsius
=5*(fahr-32)/9;
printf(
"%d\t%d\n",fahr,celsius);
}

system(
"PAUSE");
return 0;
}

 

  默认格式(%d、%f、%s ……)输出是右对齐的,所以输出的结果不是很美观。

我们可以在printf语句的%d参数中指明打印宽度,这样fahr的值占3字符宽,celsius的值占6字符宽,结果也会在打印区域内右对齐。

    printf("%3d\t%6d\n",fahr,celsius);

 对于float类型的输出:

    printf("%3.0f\t%6.1f\n",fahr,celsius);  表明:浮点数fahr至少占3字符宽,且不带小数点和小数部分;celsius至少占6字符宽,且小数点后面有一位数字。

  还可以省略宽度与精度,例如,%6f表示待打印的浮点数至少占6字符宽;%.2f指定待打印的浮点数后有两位小数,但宽度没有限制;%f表示仅打印该浮点数。

总结:

  %d    按照十进制整形数打印

  %f    按照浮点数打印(对于float 和double 类型,printf 函数都用%f进行说明)

  %o    八进制打印

  %x    十六进制打印

  %c    字符

  %s    字符串

  %%   百分号(%)本身

  %6d   按照十进制整形数打印,至少6个字符宽

  %6f    按照浮点数打印,至少6个字符宽

  %.2f   按照浮点数打印,仅有两位小数

  %6.2f   按照浮点数打印,至少6个字符宽,小数点后两位小数

posted @ 2011-02-28 13:33  RyanBell  阅读(1399)  评论(0编辑  收藏  举报