在C语言中,printf()
是一个用于输出文本信息到标准输出设备(例如控制台或终端)的函数。它可以用于在程序运行过程中打印各种类型的数据。
以下是printf()
函数的基本用法示例:
#include <stdio.h>
int main() {
int num1 = 10;
float num2 = 3.14;
char str[] = "Hello, world!";
printf("整数:%d\n", num1);
printf("浮点数:%f\n", num2);
printf("字符串:%s\n", str);
return 0;
}
上述代码中,我们包含了stdio.h头文件以访问printf()
函数。在main()
函数中,我们定义了一个整数变量num1
、一个浮点数变量num2
和一个字符数组str
。
然后,我们使用printf()
函数来输出这些变量的值。在输出中,我们使用了一些格式化字符串来指定输出的格式。例如,%d
用于输出整数,%f
用于输出浮点数,%s
用于输出字符串。
运行上述代码将在控制台输出如下内容:
整数:10
浮点数:3.140000
字符串:Hello, world!
printf()
函数在C语言中有广泛的用途,以下列举了一些常见的用法:
格式化输出
printf()
最常见的用途是格式化输出。你可以使用各种格式化字符串指令来指定输出的格式。下面是一些常见的格式化字符串指令:
格式化字符串指令 | 描述 |
---|---|
%d | 输出有符号十进制整数 |
%u | 输出无符号十进制整数 |
%f | 输出浮点数 |
%e | 输出科学计数法表示的浮点数 |
%s | 输出字符串 |
%c | 输出一个字符 |
%p | 输出指针地址 |
%x | 以十六进制输出无符号整数 |
以下是一个使用这些格式化字符串指令的示例:
#include <stdio.h>
int main() {
int num = 100;
float pi = 3.14159;
char str[] = "Hello, world!";
void *ptr = #
printf("整数:%d\n", num);
printf("浮点数:%f\n", pi);
printf("字符串:%s\n", str);
printf("指针地址:%p\n", ptr);
printf("十六进制整数:%x\n", num);
return 0;
}
上述代码输出:
整数:100 浮点数:3.141590 字符串:Hello, world! 指针地址:0x7ffeefbff3f8 十六进制整数:64
转义序列
在printf()
函数中,你还可以使用转义序列来输出一些特殊字符,例如换行符、制表符和退格符等。以下是一些常见的转义序列:
转义序列 | 描述 |
---|---|
\n | 输出一个换行符 |
\t | 输出一个制表符 |
\b | 输出一个退格符 |
\" | 输出双引号字符 |
\' | 输出单引号字符 |
\\ | 输出反斜杠字符(\) |
以下是一个使用转义序列的示例:
#include <stdio.h>
int main() {
printf("这个文本会换\n行显示到控制台\n");
printf("这个文本\t包含一个制表符\n");
printf("这个文本\b包含退格符\n");
printf("\"这个文本\"包含双引号\n");
printf("\'这个文本\'包含单引号\n");
printf("这个路径包含反斜杠:C:\\Users\n");
return 0;
}
上述代码输出:
这个文本会换 行显示到控制台 这个文本 包含一个制表符 这个文本包含退格符 "这个文本"包含双引号 '这个文本'包含单引号 这个路径包含反斜杠:C:\Users
使用变量宽度和精度
在printf()
中,你可以使用“变量宽度”和“精度”来指定输出的格式。变量宽度指的是输出域的最小宽度,而精度指的是浮点数等数字类型的小数位数。
以下是一些常用的格式化字符串指令,它们具有变量宽度和/或精度:
格式化字符串指令 | 描述 |
---|---|
%3d | 输出宽度为3的整数,不足3位时左侧填充空格 |
%-3d | 输出宽度为3的整数,不足3位时右侧填充空格 |
%6.2f | 输出至少6位宽度且精度为2的浮点数,不足时右侧填充空格 |
%.2f | 输出精度为2的浮点数 |
%06d | 输出宽度为6的整数,不足6位时左侧填充0 |
%.*f | 输出任意宽度和精度的浮点数,宽度和精度由额外的参数指定。例如:printf("%.*f", 5, pi) |
以下是一个使用变量宽度和精度的示例:
#include <stdio.h>
int main() {
int num = 100;
float pi = 3.14159;
printf("宽度为6的整数:%6d\n", num);
printf("宽度为6的整数(左对齐):%-6d\n", num);
printf("宽度为6且精度为2的浮点数:%6.2f\n", pi);
printf("宽度为6且精度为2的浮点数并用0填充:%06.2f\n", pi);
int width = 8;
int precision = 3;
printf("自定义宽度和精度的浮点数:%.*f\n", precision, pi);
printf("自定义宽度和精度的浮点数:%*.*f\n", width, precision, pi);
return 0;
}
上述代码输出:
宽度为6的整数: 100
宽度为6的整数(左对齐):100
宽度为6且精度为2的浮点数: 3.14
宽度为6且精度为2的浮点数并用0填充:003.14
自定义宽度和精度的浮点数:3.142
自定义宽度和精度的浮点数: 3.142