Skip to content

C 文件与 I/O

本章介绍使用标准库进行文件读写、格式化 I/O、二进制与文本模式、错误处理等。

1. 基础 API(stdio.h)

c
FILE *fp = fopen("data.txt", "r");
if (!fp) { /* 处理错误 */ }
// ...
fclose(fp);

常见模式:"r" 读, "w" 写(清空), "a" 追加, 加上 "b" 为二进制。

2. 逐行/逐词读取

c
char buf[256];
while (fgets(buf, sizeof buf, fp)) {
    // 处理每一行
}

3. 格式化 I/O

c
fprintf(fp, "id=%d\n", 42);
int x; fscanf(fp, "%d", &x);

4. 二进制 I/O

c
struct Rec { int id; double v; } rec;
fread(&rec, sizeof rec, 1, fp);
fwrite(&rec, sizeof rec, 1, fp);

注意对齐与端序的可移植问题。

5. 临时文件与缓冲

  • tmpfile, tmpnam(谨慎)
  • setvbuf 设置缓冲模式

6. 错误与 EOF

  • feof, ferror 检查状态
  • perrorstrerror(errno) 打印错误

7. 标准流

  • stdin, stdout, stderr

8. 小结

根据文本/二进制选择合适 API,重视错误处理与跨平台的字节序与对齐问题。

本站内容仅供学习和研究使用。