printf
函数
printf
是 "Print Formatted" 的缩写,意思是“格式化打印”,它允许你输出字符串、数字等,并可以控制它们的格式。
基本语法
#include <stdio.h> // 必须包含这个头文件,因为 printf 在这里定义 int main() { // 你的代码 printf("要输出的内容"); return 0; // 程序正常结束 }
关键点:
#include <stdio.h>
:这是一个预处理指令,告诉编译器在编译前包含 "标准输入输出库"。printf
函数就定义在这个库里。没有这行,你的代码会编译失败。int main()
:这是 C 程序的入口函数,程序从这里开始执行。return 0;
:表示程序成功执行完毕并返回 0。printf(...);
:以分号 表示一个语句的结束。
示例 1:输出简单的字符串
#include <stdio.h> int main() { printf("Hello, World!\n"); return 0; }
运行结果:
Hello, World!
说明:
\n
是一个转义字符,代表一个“换行符”,它会把光标移动到下一行的开头,如果没有\n
,后续的输出会紧跟在当前行的末尾。
格式化输出:printf
的强大之处
printf
真正的威力在于它可以使用格式化占位符来输出变量或表达式的值。
格式: printf("格式化字符串", 变量1, 变量2, ...);
常用格式化占位符:
占位符 | 数据类型 | 示例 |
---|---|---|
%d 或 %i |
十进制整数 | int a = 10; printf("%d", a); |
%f |
浮点数(默认保留6位小数) | float b = 3.14; printf("%f", b); |
%c |
单个字符 | char c = 'A'; printf("%c", c); |
%s |
字符串(以 \0 结尾的字符数组) |
char str[] = "Hello"; printf("%s", str); |
%x 或 %X |
十六进制整数(小写/大写) | int d = 255; printf("%x", d); |
%o |
八进制整数 | int e = 8; printf("%o", e); |
%p |
指针地址 | int f = 10; printf("%p", &f); |
示例 2:输出变量
#include <stdio.h> int main() { int age = 25; float height = 1.75f; char initial = 'J'; char name[] = "Alice"; // 输出整数 printf("Age: %d\n", age); // 输出浮点数 printf("Height: %.2f meters\n", height); // .2f 表示保留两位小数 // 输出字符和字符串 printf("Initial: %c\n", initial); printf("Name: %s\n", name); return 0; }
运行结果:
Age: 25
Height: 1.75 meters
Initial: J
Name: Alice
其他输出函数
除了 printf
,C 语言还提供了一些其他的输出函数,它们各有用途。
puts()
函数
puts
(put string) 用于输出一个字符串,并自动在末尾添加一个换行符 \n
,它不能进行格式化输出。
#include <stdio.h> int main() { puts("This is the first line."); puts("This is the second line."); return 0; }
运行结果:
This is the first line.
This is the second line.
putchar()
函数
putchar
(put character) 用于输出单个字符。
#include <stdio.h> int main() { putchar('H'); putchar('e'); putchar('l'); putchar('l'); putchar('o'); putchar('\n'); // 需要手动换行 return 0; }
运行结果:
Hello
输出到文件(进阶)
printf
默认输出到屏幕(标准输出流 stdout
),如果你想将输出写入一个文件,可以使用 fprintf
函数。
fprintf
和 printf
的用法几乎完全一样,只是第一个参数需要指定一个文件指针。
步骤:
- 使用
fopen()
函数打开一个文件,并获取一个文件指针。 - 使用
fprintf()
函数向该文件写入内容。 - 使用
fclose()
函数关闭文件(非常重要!)。
#include <stdio.h> int main() { // 1. 打开文件 // "w" 表示写入模式,如果文件不存在,会创建;如果存在,内容会被清空。 FILE *file_pointer = fopen("output.txt", "w"); // 检查文件是否成功打开 if (file_pointer == NULL) { printf("Error opening file!\n"); return 1; // 返回非零值表示程序异常结束 } // 2. 使用 fprintf 向文件写入内容 fprintf(file_pointer, "This line is written to a file.\n"); fprintf(file_pointer, "User's name: %s\n", "Bob"); fprintf(file_pointer, "User's score: %d\n", 95); // 3. 关闭文件 fclose(file_pointer); printf("Data has been written to output.txt\n"); return 0; }
运行这个程序后,你的项目目录下会生成一个名为 output.txt
的文件,内容如下:
This line is written to a file.
User's name: Bob
User's score: 95
函数 | 功能 | 特点 |
---|---|---|
printf |
标准输出(到屏幕) | 最常用,支持格式化输出,不自动换行。 |
puts |
输出字符串(到屏幕) | 简单,自动换行,不支持格式化。 |
putchar |
输出单个字符(到屏幕) | 简单,一次只输出一个字符,不自动换行。 |
fprintf |
格式化输出到文件 | 功能与 printf 相同,但可以指定输出目标(如文件)。 |
对于初学者来说,熟练掌握 printf
是最重要的,它是你调试程序、与用户交互最基本、最强大的工具。