10033

50 分钟

#C 语言标准库头文件 stdio.h

这个头文件提供 输入输出 的相关功能。例如打印显示内容,读取命令行输入等。

#类型

类型标准说明
FILEC89文件 I/O 流,通常不是完整类型,只能使用指针

#

标准说明
EOFC89用于表示错误字符的 int 型常量,通常为 -1,本意是文件结束(End-Of-File)
FOPEN_MAXC89最多可同时打开的文件数量上限
FILENAME_MAXC89文件名的最大长度(字节)
BUFSIZEC89默认缓冲区大小
_IOFBFC89全缓冲模式
_IOLBFC89行缓冲模式
_IONBFC89无缓冲模式
SEEK_SETC89相对文件开头
SEEK_CURC89相对当前位置
SEEK_ENDC89相对文件末尾
TMP_MAXC89tmpnam 可以生成的唯一文件名最大数量
TMP_MAX_SC11tmpnam_s 可以生成的唯一文件名最大数量
L_tmpnamC89tmpnam 生成的文件名长度(字节)
L_tmpnam_sC11tmpnam_s 生成的文件名长度(字节)

#全局变量

全局变量标准说明
stdinC89标准输入,类型为 FILE*
stdoutC89标准输出,类型为 FILE*
stderrC89标准错误,类型为 FILE*

#函数

标准 I/O标准说明
printfC89打印标准输出
scanfC89获取标准输入
putcharC89向标准输出写入单个字符
putsC89向标准输出写入字符串
getcharC89从标准输入读取单个字符
getsC89(在 C11 废弃)从标准输入读取字符串
gets_sC11从标准输入读取字符串
错误处理标准说明
feofC89判断是否到达文件流末尾
ferrorC89检查文件流错误
clearerrC89清除文件流错误
perrorC89打印 errno 中的错误
文件操作标准说明
fopenC89打开文件
fcloseC89关闭文件
tmpfileC89打开一个临时文件
tmpnamC89生成一个临时文件名
removeC89删除文件
renameC89重命名文件
fseekC89设置文件流位置
ftellC89获取文件流位置
rewindC89设置文件流位置为 0
fflushC89冲洗缓冲区
setbufC89设置缓冲区
setvbufC89设置缓冲区和缓冲模式
文件读写标准说明
freadC89读文件
fwriteC89写文件
fgetcC89从文件中读取一个字符
fgetsC89从文件中读取一行字符串
fputcC89向文件中写入一个字符
fputsC89向文件中写入一个字符串
ungetcC89向文件中放回一个字符串

#推荐阅读

#示例

#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/6/16

更新于 2025/8/19