对文件的输入输出 · File I/O in C
按 空格键 / ↓ 翻页 | 按 E 进入编辑模式
10.0 · OVERVIEW
10.1 · C-FILE
1234531 32 33 34 3510.2 · FILE POINTER
FILE *fp; — 定义文件指针变量10.3.1 · FOPEN
📋 文件打开模式速查表
| 模式 | 含义 | 文件不存在 | 文件存在 | 指针位置 |
|---|---|---|---|---|
| "r" | 只读 | 出错 | 正常打开 | 文件开头 |
| "w" | 只写 | 新建 | 覆盖 | 文件开头 |
| "a" | 追加 | 新建 | 保留 | 文件末尾 |
| "r+" | 读写 | 出错 | 正常打开 | 文件开头 |
| "w+" | 读写 | 新建 | 覆盖 | 文件开头 |
| "a+" | 读写 | 新建 | 保留 | 文件末尾 |
| "rb"/"wb"/"ab" | 加 b = 二进制模式,功能同上 | |||
10.3.2 · FCLOSE
fclose(fp); — 返回0成功,EOF(-1)失败
10.4.1-10.4.3 · SEQUENTIAL R/W
| 函数 | 调用格式 | 功能 | 返回值 |
|---|---|---|---|
| fgetc | ch = fgetc(fp) | 从fp读一个字符 | 成功返回字符,失败返回EOF |
| fputc | fputc(ch, fp) | 写一个字符到fp | 成功返回ch,失败返回EOF |
| fgets | fgets(str, n, fp) | 从fp读n-1个字符到str | 成功返回str,失败返回NULL |
| fputs | fputs(str, fp) | 把str写到fp | 成功返回≥0,失败返回EOF |
10.4.4 · FORMATTED I/O
printf(...) ≡ fprintf(stdout, ...)scanf(...) ≡ fscanf(stdin, ...)10.4.5 · BINARY R/W
🛠️ 交互式代码编辑器 — 修改下方代码并运行模拟
10.5.1 · FSEEK
10.5.2-10.5.3 · FTELL & REWIND
10.6 · ERROR DETECTION
| 函数 | 功能 | 返回值 | 清除 |
|---|---|---|---|
| ferror(fp) | 检查文件操作是否出错 | 出错返回非0,正常返回0 | clearerr(fp) |
| feof(fp) | 检查是否读到文件末尾 | 到末尾返回非0,未到返回0 | clearerr(fp) |
feof(fp) 作为循环终止条件去读文件!while(fgets(buf, n, fp) != NULL)10.7 · PROJECT
📝 QUIZ