printf( )和scanf( )

                                      printf()的转换说明

转换说明 输出
%a,%A 浮点数,十六进制数和p记数法
%c 单个字符
%d、%i 有符号的十进制整数
%e,%E 浮点数,e记数法
%f 浮点数,十进制计数法
%g/%G

根据值的不同,自动选择%f或%g/%G。

%g/%G格式用于指数小于-4或大于等于精度时。

%o 无符号八进制整数
%p 指针
%s 字符串
%u 无符号十进制整数
%x/&X 无符号十六进制整数,是用十六进制of/oF
%% 打印一个百分号

 

      printf()的转换说明修饰符

修饰符 含义
标记 -,+,空格,#,0
数字

最小字段宽度

如果该字段不能容纳待打印的数字或字符串,

系统会使用更宽的字段。示例:%4d

.数字

精度

对于%e,%E,%f的转换,表示小数点右边数字的位数

对于%g和%G转换,表示有效数字最大位数

对于%s转换,表示待打印字符的最大数量

对于整形转换,表示待打印数字的最小位数

h 和整形转换说明一起使用,表示short int和unsigned short int类型的值。示例:%hu,%hx,%6.4hd
hh 和整形转换说明一起使用,表示signed char和unsigned char类型的值
l 和整形转换说明一起使用,表示long int 和unsigned long int 类型的值
z

和整形转换说明一起使用,表示size_t类型的值。

size_t是sizeof返回的类型。示例:%zd。

L long double

 

                  printf( )中的标记

标记 含义
- 待打印项左对齐。
+

有符号值为正,则在值前面显示加号;

若为负,则在值前面显示符号。

空格

有符号值若为正,则在值前面显示前导符号;

若为负,则在值前面显示减号标记并覆盖空格。

#

把结果转换为另一种形式。如果是%o格式,则以0开始;

如果是%x或%X格式,则以0x或0X开始;

0

对于数值格式,用前导0代替空格填充字段宽度。

对于整数格式,如果出现-标记或指定精度,则忽视该标记。

 

scanf( )

  • 如果用scanf()读取基本变量类型的值,在变量前加上一个&,如果是字符串则不用。
  • scanf()读入数组时读取到空格是结束。
  • 在scanf()中,把*放在%和转换字符之间时,会使得是scanf()跳过相应的输入项。而printf()则是在有充足的字段宽度时用*号填充。
  • scanf()返回成功读取项的个数。
posted @ 2021-12-02 22:52  Godofball  阅读(107)  评论(0)    收藏  举报