1. 什么是printf函数
在Linux中,printf是一个非常常用的输出函数。它可以将指定的数据格式化为字符串并输出到指定的输出设备上,比如终端或者文件。printf函数在C语言中被广泛使用。
#include <stdio.h>
int main() {
printf("Hello, world!");
return 0;
}
上面这段代码使用了printf函数来输出一个简单的Hello, world!信息。我们使用的是stdio.h库中的printf函数。
2. printf函数的使用
2.1 格式化字符串
printf函数的第一个参数是一个字符串,又称为格式化字符串。这个字符串中可以包含普通文本和格式化说明符(也称为占位符)。格式化说明符以%开头,被替换为相应的值。
以下是一些格式化说明符的示例:
%d:以十进制打印整数
%c:打印单个字符
%s:打印字符串
%f:以浮点数打印浮点数
下面是一个示例:
int main() {
int age = 30;
printf("I am %d years old.", age);
return 0;
}
执行以上代码,输出结果为:
I am 30 years old.
注意,在格式化字符串中,%和转换字符之间可以有修饰符。比如%5d表示打印5个字符的整数(不足的用空格填充),%-5d则是左对齐。%+d表示打印带符号的整数。
2.2 格式化不同类型的输出
printf函数可以格式化输出各种类型的数据,包括整数、小数、字符和字符串。这些数据类型都有相应的格式说明符。
2.2.1 格式化整数输出
格式化整数输出使用%d、%u、%x等格式说明符。%d表示以10进制形式打印带符号的整数;%u表示以10进制形式打印无符号整数;%x表示以16进制形式打印无符号整数。
int main() {
int num = -10;
printf("The number is: %d\n", num);
unsigned int unsigned_num = 10;
printf("The unsigned number is: %u\n", unsigned_num);
unsigned int hex_num = 0xff;
printf("The hex number is: %x\n", hex_num);
return 0;
}
代码执行结果为:
The number is: -10
The unsigned number is: 10
The hex number is: ff
2.2.2 格式化小数输出
格式化小数输出使用%f、%g、%e等格式说明符。%f表示打印小数;%g表示在%e和%f之间自动选择;%e表示以指数形式打印浮点数。
int main() {
double num1 = 3.14159;
printf("The float number is: %f\n", num1);
double num2 = 1234.5678;
printf("The float number is: %g\n", num2);
double num3 = 1234.5678;
printf("The float number is: %e\n", num3);
return 0;
}
代码执行结果为:
The float number is: 3.141590
The float number is: 1234.57
The float number is: 1.234568e+03
2.2.3 格式化字符和字符串输出
格式化字符和字符串输出使用%c和%s格式说明符。
int main() {
char c = 'A';
printf("The character is: %c\n", c);
char str[] = "hello";
printf("The string is: %s\n", str);
return 0;
}
代码执行结果为:
The character is: A
The string is: hello
3. printf函数的高级用法
3.1 控制输出格式
printf函数使用%和修饰符来控制输出格式。一些常见的修饰符包括:
width:指定输出宽度
precision:指定小数位数
+:强制输出符号
-:左对齐
0:用0填充输出
下面是一些示例:
int main() {
double num1 = 3.14159;
printf("The Pi number is: %.2f\n", num1);
int num2 = 10;
printf("The number is: %05d\n", num2);
double num3 = -100.0;
printf("The number is: %+8.2f\n", num3);
return 0;
}
代码执行结果为:
The Pi number is: 3.14
The number is: 00010
The number is: -100.00
3.2 将输出重定向到文件
在Linux中,我们可以使用输出重定向符号将程序的输出重定向到文件中。
./a.out > output.txt
上面这行代码将a.out程序的输出重定向到了output.txt文件中。