# C 语言标准库头文件 stdio.h
这个头文件提供 输入输出 的相关功能。例如打印显示内容,读取命令行输入等。
# 类型
| 类型 |
标准 |
说明 |
FILE |
C89 |
文件 I/O 流,通常不是完整类型,只能使用指针 |
| 宏 |
标准 |
说明 |
EOF |
C89 |
用于表示错误字符的 int 型常量,通常为 -1,本意是文件结束(End-Of-File) |
FOPEN_MAX |
C89 |
最多可同时打开的文件数量上限 |
FILENAME_MAX |
C89 |
文件名的最大长度(字节) |
BUFSIZE |
C89 |
默认缓冲区大小 |
_IOFBF |
C89 |
全缓冲模式 |
_IOLBF |
C89 |
行缓冲模式 |
_IONBF |
C89 |
无缓冲模式 |
SEEK_SET |
C89 |
相对文件开头 |
SEEK_CUR |
C89 |
相对当前位置 |
SEEK_END |
C89 |
相对文件末尾 |
TMP_MAX |
C89 |
tmpnam 可以生成的唯一文件名最大数量 |
TMP_MAX_S |
C11 |
tmpnam_s 可以生成的唯一文件名最大数量 |
L_tmpnam |
C89 |
tmpnam 生成的文件名长度(字节) |
L_tmpnam_s |
C11 |
tmpnam_s 生成的文件名长度(字节) |
# 全局变量
| 全局变量 |
标准 |
说明 |
stdin |
C89 |
标准输入,类型为 FILE* |
stdout |
C89 |
标准输出,类型为 FILE* |
stderr |
C89 |
标准错误,类型为 FILE* |
# 函数
TODO:未完成,待更新。
# 推荐阅读
# 示例
#include <stdio.h> // 包含标准输入输出头文件
int main(void) {
// 1. 使用 printf 输出到标准输出
printf("Hello, World!\n");
// 2. 格式化输出
int age = 25;
float height = 1.75f;
printf("I am %d years old and %.2f meters tall.\n", age, height);
// 3. 从标准输入读取数据
char name[50];
printf("Please enter your name: ");
scanf("%49s", name); // 限制输入长度为49个字符,防止缓冲区溢出
printf("Hello, %s!\n", name);
getchar(); // 读取换行符
// 4. 文件操作
FILE *file = fopen("example.txt", "w"); // 以写入模式打开文件
if (file != NULL) {
fprintf(file, "This is written to a file.\n");
fclose(file); // 关闭文件
} else {
perror("Failed to open file"); // 打印错误信息
}
// 5. 读取文件内容
file = fopen("example.txt", "r");
if (file != NULL) {
char buffer[100];
while (fgets(buffer, sizeof(buffer), file) != NULL) {
printf("File content: %s", buffer);
}
fclose(file);
}
// 6. 使用 putchar 和 getchar
printf("Enter a character: ");
int ch = getchar(); // 读取一个字符
printf("You entered: ");
putchar(ch); // 输出一个字符
putchar('\n');
// 7. 清空输入缓冲区
while ((ch = getchar()) != '\n' && ch != EOF); // 清除剩余输入
return 0;
}
运行结果:
Hello, World!
I am 25 years old and 1.75 meters tall.
Please enter your name: planc
Hello, planc!
File content: This is written to a file.
Enter a character: A
You entered: A
本文 更新于: 2025-11-27 09:38:07 创建于: 2025-11-27 09:38:07