C语言Printf和Scan函数的使用方法
一 printf()函数是格式化出函数, 一般用于向设备定格式
信息。在写程序时经常会用到此函数。printf()函数的用格式:
      printf("<格式化字符串>", <参量表>);
    其中格式化字符串包括两部分内容: 一部分是正常字符,  些字符将按原
样输出; 另一部分是格式化定字符, 以"%"始, 后跟一个或几个定字符,
用来确定出内容格式。
    参量表是需要出的一系列参数, 其个数必与格式化字符串所明的
参数个数一多, 各参数之用","分, 且序一一对应,  否将会出意想
不到的错误
    格式化字符串的格式是:
      %[志][出最小度][.精度][度]格式字符
1.  志:志字符-、+、#、空格四,其意下表所示:
    志              意
 
    -                果左对齐,右填空格
    +                出符号(正号或号)
    空格              值为冠以空格,为负时冠以
    #                c,s,d,u无影响;o,在加前o;x,在加前0x;e,g,f 果有小数                        出小数点()
例1:
#include<stdio.h>
main()
{
 int a=100;
 float b=123.255;
 printf("a=%d ",a);
 printf("a=%10d ",a);
 printf("a=%-10d ",a);
 printf("a=%+d ",a);
 printf("a=% d ",a);
 printf("a=%#o ",a);
 printf("a=%#x ",a);
 printf("b=%#f ",b);
}
运行
a=100
a=      100
a=100
a=+100
a= 100
a=0144
a=0x64
b=123.254997  ()
2.出最小度:用十制整数来表示出的最少位数。(至少要这么多位!)
              若实际位数多于定度:实际位数出。
              若实际位数少于定度:对齐,左留空。
                                        有号,左对齐,右留空
                                        表示度的数字以0始,对齐,左留空。
例2 #include<stdio.h>
main()
{
 int a=3456;
 printf("a=%3d ",a);    //若实际位数多于定度:实际位数
 printf("a=%10d ",a);  //若实际位数少于定度:对齐,左留空
 printf("a=%-10d ",a);  //若实际位数少于定度:有号,左对齐,右留空
 printf("a=%010d ",a);  //若实际位数少于定度:表示度的数字以0始,对齐,左留空
 printf("a=%-010d ",a); //左对齐,0无意
}
运行果:
a=3456
a=      3456
a=3456
a=0000003456
a=3456
3.精度:精度格式符以“.”开头,后跟十制整数。意是:
    如果出数字,表示小数的位数;若实际位数大于所定的精度数,四舍五入。若不足则补0;
    如果出的是字符,表示出字符的个数;若实际位数大于所定的精度数,截去超的部分。
例3:
#include<stdio.h>
main()
{
printf("%.3f ",12.3456);
printf("%.9f ",12.3456);
printf("%.3s ","abcdefg");
printf("%.9s ","abcdefg");
}
运行果:
12.346          //四舍五入到小数点后三位
12.345600000    //不足0
abc
abcdefg
4.度:度格式符h,l两,h表示按短整型量出,l表示按整型量
5.Turbo C2.0提供的格式字符如下:
━━━━━━━━━━━━━━━━━━━━━━━━━━
  符号                  作用
──────────────────────────
    %c              个字符 
    %d              十制有符号整数
    %e              以“科学数法”的形式出十制的浮点数  如2.451e+02
    %f              出十制浮点数,不宽时,保留6位小数
    %g              用e或f格式中短的一个出十制浮点数,不出无效零
    %0              无printf函数是如何实现的出无符号八制整数
    %p              指
    %s              出字符串
    %u              出无符号十制整数
    %x, %X          出无符号十六制整数 (不出前Ox)
   
   
━━━━━━━━━━━━━━━━━━━━━━━━━━
 2. 一些特殊定字符
━━━━━━━━━━━━━━━━━━━━━━━━━━
    字符                          作用
──────────────────────────
                       
    f                  清屏并换页
                        回
                        Tab符
    xhh                表示一个ASCII用16表示,
                          其中hh是1到2个16制数
━━━━━━━━━━━━━━━━━━━━━━━━━━
使用转义字符不需要加上%,可独使用!
    由本所学的printf()函数, 并合上一的数据型, 制下面的程
序, 以加深Turbo C2.0数据型的了解。
    例1
    #include<stdio.h>
    #include<string.h>
    int main()
    {
          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 ", a);    /*出十制整数a=1234*/
          printf("a=%6d ", a);    /*出6位十制数a=  1234*/
          printf("a=%06d ", a);  /*出6位十制数a=001234*/
          printf("a=%2d ", a);    /*a超2位, 按实际值输出a=1234*/
          printf("*i=%4d ", *i);  /*出4位十制整数*i=  12*/
          printf("*i=%-4d ", *i); /*出左对齐4位十制整数*i=12*/
          printf("i=%p ", i);    /*出地址i=06E4*/
          printf("f=%f ", f);    /*出浮点数f=3.141593*/
          printf("f=6.4f ", f);  /*出6位其中小数点后4位的浮点数
                                      f=3.1416*/
          printf("x=%lf ", x);    /*浮点数x=0.123457*/   
          printf("x=%18.16lf ", x);/*出18位其中小数点后16位的浮点
                                      数x=0.1234567898765432*/
          printf("c=%c ", c);    /*出字符c=A*/
          printf("c=%x ", c);    /*出字符的ASCII码值c=41*/
          printf("s[]=%s ", s);  /*出数字符串s[]=Hello, Comrade*/
          printf("s[]=%6.9s ", s);/*出最多9个字符的字符串s[]=Hello,
                                    Co*/
          printf("s=%p ", s);    /*出数字符串首字符地址s=FFBE*/