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 | 对于所有的数字格式,用前导零而不是用空格填充字段宽度,如果出现了-标志或指定了精度则忽略该标志 |