`printf`函数是C语言中用于格式化输出数据的基本函数。它的基本语法如下:
```c
int printf(const char *format, ...);
```
`format`:一个格式字符串,用于指定输出的格式。
`...`:可变数量的参数,其类型和数量由格式字符串中的格式说明符决定。
格式字符串中可以包含普通字符和格式声明。普通字符会原样输出,而格式声明以`%`开头,后跟一个或多个格式字符,用于指定变量的类型和格式。
%d :输出带符号的十进制整数。%u:
输出无符号的十进制整数。
%x
/ %X:
输出无符号的十六进制整数,分别使用小写字母和大写字母。
%f:
输出浮点数。
%c:
输出字符。
%s:
输出字符串。
%p:
输出指针。
示例
```c
include
int main() {
int num = 10;
float pi = 3.14159;
char letter = 'A';
char name[] = "John";
printf("整数: %d\n", num);
printf("浮点数: %.2f\n", pi);
printf("字符: %c\n", letter);
printf("字符串: %s\n", name);
return 0;
}
```
输出结果
```
整数: 10
浮点数: 3.14
字符: A
字符串: John
```
格式控制选项
`printf`函数还支持一些格式控制选项,用于进一步控制输出格式:
标志(flags)
`-`:左对齐。
`+`:强制在结果之前显示加号或减号。
` `(空格):输出值为正时加上空格。
``:在某些说明符下有不同作用(例如,对于`%o`和`%x`,``表示输出前缀为`0`或`0x`)。
最小宽度(width)
控制显示字段的宽度,取值可以是数字或`*`。如果输出的字段长度小于该数,结果会用前导空格填充;如果输出的字段长度大于该数,结果使用更宽的字段,不会截断输出。
精度(.precision)
用于指定输出精度,如对于浮点数指定小数点后的小数位数,对于字符串指定要输出的最大字符数等。可以是数字或`.*`。
类型长度(length)
用于控制待输出数据的数据类型长度,如`h`表示短整型或无符号短整型,`l`表示长整型或无符号长整型等。
示例(带格式控制选项)
```c
include
int main() {
int num = 10;
float pi = 3.14159;
printf("整数(右对齐,宽度为10):%10d\n", num);
printf("浮点数(保留两位小数):%.2f\n", pi);
return 0;
}
```
输出结果
```
整数(右对齐,宽度为10): 10
浮点数(保留两位小数):3.14
```
通过这些示例和说明,你可以看到`printf`函数在C语言中的强大功能和灵活性。