printf
函数是C语言中用于格式化输出的函数,它允许你按照指定的格式输出文本和变量值。以下是printf
函数的基本用法:
基本格式
int printf(const char *format, ...);
-
format
是一个格式化字符串,包含了普通字符和格式化规定符。 -
...
表示一个或多个参数,用于替换格式化字符串中的占位符。
格式化规定符
-
%d
:十进制有符号整数 -
%u
:十进制无符号整数 -
%f
:浮点数 -
%s
:字符串 -
%c
:单个字符 -
%p
:指针的值 -
%e
:指数形式的浮点数 -
%x
/%X
:无符号以十六进制表示的整数 -
%o
:无符号以八进制表示的整数 -
%g
:自动选择合适的表示法
示例
#include <stdio.h>
int main() {
int i = 10;
float f = 5.12345678;
char str[] = "Hello World!";
printf("整数:%d\n", i);
printf("浮点数:%.2f\n", f);
printf("字符串:%s\n", str);
printf("字符:%c\n", 'A');
printf("指针值:%p\n", (void*) &i);
printf("科学计数法浮点数:%e\n", f);
printf("十六进制整数:%x\n", i);
printf("八进制整数:%o\n", i);
printf("自动选择表示法:%g\n", f);
return 0;
}
注意事项
-
格式化字符串中的占位符必须与提供的参数个数和类型相匹配。
-
可以在
%
和格式说明符之间指定宽度,如%3d
表示宽度为3的整数。 -
如果字符串或整数的长度超过指定的宽度,将按实际长度输出。
-
对于浮点数,如果整数部分位数超过指定的宽度,将按实际整数位输出;如果小数部分位数超过指定的宽度,将按指定宽度四舍五入输出。
输出顺序
printf
函数从左至右读取格式化字符串,并将参数按顺序压入栈中,处理时从栈顶开始,因此输出结果是从右至左的。
错误处理
如果printf
函数遇到格式说明符与参数类型不匹配,或者参数个数不足,它将返回一个负值,表示发生了错误。
结束语
printf
函数是C语言中非常重要的输出工具,合理使用可以使程序输出更加友好和易于理解