Printf ()和scanf ()函数
     Printf ()和scanf ()函数能够使人和程序进行通讯,它们被称为基本输出和输入函数,但是它们不是C一部分,这样作可以提高C程序的可移植性。虽然它们一个是输出函数一个是输入函数但是它们的工作几乎相同,都是采用控制字符串和参数列表。
Printf () 打印指令请求的类型,取决于变量的类型,而不是转换说明符。转换说明符只是起到一个如何把数据类型转换成可显示的形式。
转换说明符和作为结果的打印输出

转换说明
输出
%a
浮点数、十六进制数字和p-记数法
%A
浮点数、十六进制数字和P-记数法
%c
一个字符
%d
有符号十进制整数
%e
浮点数e-记数法
%E
浮点数 E-记数法
%f
浮点数 十进制记数法
%g
根据数值的不同自动选择%f或%e,%e格式在指数小于-4或大于等于精度时使用
%G
根据数值的不同自动选择%f或%e,%e格式在指数小于-4或大于等于精度时使用
%i
有符号十进制数和%d相同
%o
无符号八进制
%p
指针
%s
字符串
%u
无符号十制数
%x
使用十六进制数字of的无符号十六进制整数
%X
使用十六进制数字oF的无符号十六进制整数
%%
打印一个百分号

 
 
//4-6.c------- 使用转换说明符
#include <stdio.h>
#define PI 3.141593
int main (void)
{
       int number = 5;
       float expresso = 13.5;
       int cost = 3100;
       printf ("The %d CEOs drank %f cups of expresso.\n",number,expresso);
       printf ("The value of pi is %f .\n",PI);
       printf ("Farewell ! thou art too dear for my possesessing,\n");
       printf ("%c%d\n",'$',2 * cost);
       return 0 ;
}
 
Printf ()的使用格式 : printf (Control---string,item1.item2,…);
     Item1 item2等等都是要打印的项目,它们可是变量,常量,还可以是打印前进行计算的表达式。控制字符串是一个描述项目如何打印的字符串,控制字符串应该为每个要打印的项目包含一个转义说明符.控制字符串就是双引号内的语句,它包括两种不同的信息即实际要打印的字符和转换说明。
 
                   控制描述                     变量列表
                      ▼                          

Printf (
“You look great in %s\n”
,
color
):

                    Printf () 的参数
 

“The value of is
%f
.\n”

     --- 文字字符 ---∣----转换说明---∣--文字字符--∣
                     一个控制字符串的结构
Print () 的转换说明修饰符
                              Printf () 修饰符

修饰符
意义
标志
五种标志(-,+,空格,#的0)
digit (s)
字段宽度的最小值,如果该字段不能容纳要打印的数或字符串,系统就是使用更宽的字段
.digit(s)
精度。对于%e %E %f转换,是将要在小数点的右边打印的数字的位数,%g 和%G转换,是有效数字的是最大位数。对于%s的转换,是将要打印的字符最大数目,对于整数的转换,是将要打印的数字的最小位数。如果有必要前导用零来达到这个位数。只使用。表示其后跟随一个零。
h
和整数转换说明符一起使用表示,short int 或者是unsigend short int 类型数值
hh
和整数转换说明符一起使用表示 signed char 或者是 unsigned char 类型数值
j
和整数转换说明符一起使用表示intmax_t或者是uintmax_t值
l
和整数转换说明符一起使用表示一个long int 或者是unsigned long int类型值
ll
和整数转换说明符一起使用表示一个long long int 或者是unsigned long long int
L
和浮点数说明符一起使用表示一个long double
t
和整数转换说明符一起使用表示一个ptrdiff_t
z
和整数转换说明符一起使用表示一个sixe_t

在使用 float 数据类型时都会被自动的转换为double 类型。
                                Printf ()的标志

标志
意义
-
项目左对齐;会把项目打印在字段的左则开始处
+
有符号的值若为正,则显示带加号的符号,若为负,则带减号的符号
空格
有符号的值若为正,则显示时前导空格,若为负,则带减号的符号
#
使用转换说明的可选形式,若为%0格式则以0开始;若为%x和%X则以0x或0X开始。对于所有的浮点形式,#保证了即使不跟任何数字,也打印一个小数点字符,对于%g和%G格式它防止尾零被删除
0
对于所有的数字格式,用前导零而不是用空格填充字段宽度,如果出现了-标志或指定了精度则忽略该标志