printf函数与scanf函数是C语言中使用最广泛的两个输入输出函数,简称为I/O函数,它们可以实现用户与程序之间进行交流,并且它们的工作原理基本相同,两个函数也都使用格式字符串和参数列表下面让我们一起看看吧!
一、printf函数的转换说明:
转换说明相当于指令,它可以告诉函数要打印什么类型的数据,我们最常用的几个有%d、%c、%s、%x和%p等,每个转换说明代表着不同的含义,下面就是printf函数的转换说明。
转换说明 | 输出 |
---|---|
%a | 浮点数、十六进制数和p计数法(C99/C11) |
%A | 浮点数、十六进制数和p计数法(C99/C11) |
%c | 单个字符 |
%d | 有符号十进制整数 |
%e | 浮点数,e计数法 |
%E | 浮点数,e计数法 |
%f | 浮点数,十进制计数法 |
%g | 根据值的不同,自动选择%f或%e,%e格式用于指数小于-4或大于等于精度时 |
%G | 根据值的不同,自动选择%f或%e,%e格式用于指数小于-4或大于等于精度时 |
%i | 有符号十进制整数,与%d相同 |
%o | 无符号八进制整数 |
%p | 指针,即地址 |
%s | 字符串 |
%u | 无符号十进制整数 |
%x | 无符号十六进制整数,使用十六进制数0f |
%X | 无符号十六进制整数,使用十六进制数0F |
%% | 打印一个百分号 |
另外,如果想打印一些其他类型的数据,仅靠转换说明是不够的,比如想打印short类型的数据,可以使用%d打印,但是也可以使用%hd打印,那么h就是转换说明修饰符。转换说明修饰符就是在%和转换字符之间添加一些字符,使得转换说明的功能更加完善,字符可以插入一个,当然也可以插入多个,具体由下面几种修饰符。
上面就是转换说明的修饰符,有了这些修饰符,我们就可以打印出更多种类的值,打印的形式也更加多种多。
现在简单介绍一下修饰符中的标记。
标记 | 含义 |
---|---|
-(负号) | 待打印项为左对齐 |
+(正号) | 待打印项为右对齐 |
空格 | 有符号值若为正,则在前面显示前导空格。若为负,则在值前面显示减号标记并覆盖空格。 |
#(井号) | 把结果转换成另一种形式。八进制数字转换成0开头,比如0123是八进制数123,十六进制数字转换成0x开头,比如0x02a是十六进制数02a。 |
0(数字0) | 如果是数值,则0代表字段宽度所填充的字符,比如%02d就是以十进制的形式打印,字段为2,不够补0。如果是整数,出现'-'标记或指定精度,则忽略该标记,比如%0-2d表示以十进制的形式打印,结果显示为左对齐。%0.3f表示以十进制打印浮点数,结果保留3位有效数字。 |
二、scanf函数的转换说明:
scanf函数的转换说明与printf函数大致相同,只不过printf是将数据按照哪种形式输出,scanf是将数据按照哪种形式输入。
转换说明 | 含义 |
---|---|
%c | 把输入解释成字符 |
%d | 把输入解释成有符号十进制整数 |
%e、%f、%g、%a | 把输入解释成浮点数 |
%E、%F、%G、%A | 把输入解释成浮点数 |
%i | 把输入解释成有符号十进制整数 |
%o | 把输入解释成有符号八进制整数 |
%p | 把输入解释成指针 |
%s | 把输入解释成字符串,从第一个非空白字符开始到下一个空白字符之间的所有字符 |
%u | 把输入解释成无符号十进制整数 |
%x、%X | 把输入解释成有符号十六进制整数 |
上面的就是scanf的转换说明了,有了这些转换说明,我们就可以按照想输入的格式进行输入数据了。
以上就是我这次的分享了,写的不好,请多担待!