作者说明 · 学习记录
本站作为作者的学习记录站,不保证文章内容严谨或完全正确。
版权信息

warning

本文章为博主原创文章。遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。


📌 C 标准库 I/O 函数(基于 <stdio.h>

1. 打开和关闭文件

1
2
3
#include <stdio.h>  
FILE *fopen(const char *filename, const char *mode);
int fclose(FILE *stream);

2. 读写字符

1
2
int fgetc(FILE *stream);     // 读取一个字符
int fputc(int c, FILE *stream); // 写入一个字符

示例:

1
2
char c = fgetc(fp);
fputc('A', fp);

3. 读写字符串

1
2
char *fgets(char *s, int size, FILE *stream); // 读取一行(最多 size-1 个字符) 
int fputs(const char *s, FILE *stream); // 写入字符串

示例:

1
2
char buf[100]; fgets(buf, sizeof(buf), fp); 
fputs("Hello\n", fp);

4. 格式化 I/O

1
2
int fprintf(FILE *stream, const char *format, ...);  // 格式化输出到文件 
int fscanf(FILE *stream, const char *format, ...); // 格式化读取

示例:

1
2
fprintf(fp, "name=%s age=%d\n", "Tom", 20); 
fscanf(fp, "%s %d", name, &age);

5. 块读写(适合二进制文件)

1
2
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream); 
size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream);

示例:

1
2
int data[10]; fwrite(data, sizeof(int), 10, fp); // 写10个整数 
fread(data, sizeof(int), 10, fp); // 读10个整数

6. 文件定位

1
2
3
int fseek(FILE *stream, long offset, int whence);  // 移动文件指针
long ftell(FILE *stream); // 获取当前位置
void rewind(FILE *stream); // 回到开头`

whence 可取:


7. 缓冲刷新

1
int fflush(FILE *stream);  // 强制把缓冲区写入文件

常用于写日志,避免异常退出时丢数据。

Linux C标准IO操作

创建时间:9月 09, 2025

最后更新:9月 09, 2025

字数统计:458字

预计阅读:2min