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检查状态perror与strerror(errno)打印错误
7. 标准流
stdin,stdout,stderr
8. 小结
根据文本/二进制选择合适 API,重视错误处理与跨平台的字节序与对齐问题。