<cstdio>scanf/printf函数详解

发布时间 2023-10-19 00:02:08作者: Colin-Wang

stdio.h是C语言中的一个头文件。
可以解释一下其名称的含义:std是standard的缩写,而io是input&output的简写,从而整个名称的含义就是“标准输入输出库”。
的确,这个头文件中定义了许许多多与输入输出有关的函数,常量,宏(简单理解用于直接跟编译器对话的一些指令)等等。
在这其中,有scanf与printf函数 分别用于标准输入与标准输出,也是C语言的初学者必须掌握的输入输出函数。

在这里,我将为大家详细地讲解这两个函数。
在这里,首先给出两个函数的函数原型:
int scanf(const char*format,…);
int printf(const char*format,…);
其中,对应的是参数列表,format是使用格式化标识符的字符串,表达了程序员希望使用输入输出格式。

C语言中的格式化说明符用于控制如何格式化和显示数据。以下是一些常见的C语言格式化说明符:

%a%A:浮点数,十六进制数和p计数法(C99/C11)
%d:有符号十进制整数
%u%i:无符号十进制整数
%f:浮点数,默认小数点后6位
%e%E:指数形式的浮点数,默认小数点后6位
%g%G:根据精度不同自动选择%f%e中精度较小者,默认有效数字位数6位
%c:字符
%s:字符串
%p:指针
%o:无符号八进制整数
%x%X:无符号十六进制整数
%%:输出一个百分号

这些格式化说明符可以与其他修饰符一起使用,以控制输出的宽度、精度、对齐方式等。以下是一些常见的修饰符:

可以使用0个或多个修饰符
数字:提供目标值输出宽度的下限,若目标值实际宽度不足则右对齐,不足的部分用空格补齐;否则按实际宽度输出
.数字:提供输出精度,
对于%f%e%E表示小数点后位数,
对于%g%G表示有效数字位数
对于%s表示打印字符串的最大长度
对于%i%d%u表示将要打印数据的最小位数,不足则在左侧补0(前导0)
h:表示一个short整型的数值,与%i%d%x%o%u等连用
hh:表示一个char整型的数值,与%i%d%x%o%u等连用
l:表示一个long整型(与%i%d%x%o%u等连用)
或者double浮点型(与%f%e%g等连用)
ll:表示一个long long整型(与%i%d%x%o%u等连用)
L:表示一个long double浮点型(与%f连用,慎用)