功能分类
| 功能类别 | 常用函数 | 解释 |
|---|---|---|
| 写文件(输出) | fprintf()、fputs()、fputc()、fwrite() |
把内容写进文件 |
| 读文件(输入) | fscanf()、fgets()、fgetc()、fread() |
从文件读出内容 |
| 打开/关闭文件 | fopen()、fclose() |
打开或关闭文件 |
| 文件文本位置控制 | fseek()、ftell()、rewind() |
控制“读写光标”位置 |
| 检测文件状态 | feof()、ferror()、clearerr() |
判断是否读到末尾、出错等 |
写入文件函数解析
| 函数 | 功能 | 举例 | 文件内容 |
|---|---|---|---|
| fprintf(fp, "%d", x) | 写格式化文本(数字→文字) | 写入 123 | "123" |
| fputs("abc", fp) | 写一整串字符串 | "abc" |
"abc" |
| fputc('A', fp) | 写一个字符 | 'A' |
"A" |
| fwrite(&x, sizeof(int), 1, fp) | 写原始二进制数据 | 123 | 01111011(看不懂的二进制) |
读取文件函数解析
| 函数 | 功能 | 举例 | 说明 |
|---|---|---|---|
| fscanf(fp, "%d", &x) | 读格式化文本 | 读出“123” | 文本读法 |
| fgets(buf, n, fp) | 读一行文本到字符串 | 读到 “hello\n” | 常用于文本文件 |
| fgetc(fp) | 读一个字符 | 读出 'A' |
一次 1 字节 |
| fread(&x, sizeof(int), 1, fp) | 读原始二进制数据 | 读出 int 值 123 | 常用于二进制文件 |
文件文本位置控制函数解析
| 函数 | 功能 | 举例 | 说明 |
|---|---|---|---|
| fseek(fp, offset, origin) | 移动文件指针 | fseek(fp, 0, SEEK_END) |
跳到文件末尾 |
| ftell(fp) | 获取当前位置 | 返回当前指针偏移量 | |
| rewind(fp) | 回到开头 | rewind(fp) |
快速重置到文件头 |
文件状态检测函数解析
| 函数 | 功能 | 解释 |
|---|---|---|
| feof(fp) | 判断是否到达文件末尾 | “读完了吗?” |
| ferror(fp) | 判断是否出错 | “读写出问题了吗?” |
| clearerr(fp) | 清除错误状态 | “重置错误标志” |
打开/关闭文件函数代码举例
#include <stdio.h>int main() {FILE *fp = fopen("data.bin", "wb"); // 以"wb"二进制写方式打开"data.bin"文件int num = 65;fwrite(&num, sizeof(int), 1, fp); // 写入num"65"的二进制值fclose(fp); //关闭文件释放内存fp = fopen("data.bin", "rb"); // 重新打开"rb"读int readNum;fread(&readNum, sizeof(int), 1, fp); // 读出二进制值的十进制值printf("读出的值: %d\n", readNum); // 输出:65fclose(fp); //关闭文件释放内存return 0;
}
- 打开文件函数的模式解析:C 语言 - fopen、fprintf、fread、fwrite、fputc 操作文件函数解析