文件的API
文件的操作步骤:打开,读写,关闭
fopen:打开文件
FILE *fopen(const char *path, const char *mode)
path:文件的路径
mode:打开文件的方式
返回值
成功:返回打开文件的指针
失败:NULL
文件的打开方式(mode)
r:只读的方式打开
w:只写的方式打开
a:追加的方式打开
+:可读可写的凡是打开
t:以文本文件的方式打开(默认省略)
b:以二进制方式打开
fclose:关闭文件
int fclose(FILE *fp)
返回值
成功返回0
失败返回非0
fputc:一次写一个字节
int fputc(int c, FILE *stream) 将 c 的值写到stream所代表的文件中
返回值
成功,则返回写入的字节数
失败,则返回一个EOF(EOF是在stdio.h文件中定义的符号常量,值为-1,只在文本文件中有效)
fgetc:一次读取一个字节
int fgetc(FILE *stream) 从stream所表示的文件中读取一个字节,将字节值返回
返回值
以 t 的方式:读到文件结尾返回EOF
以 b 的方式:读到文件结尾,使用feof判断结尾
fputs:一次写一个字符串
int fputs(const char *s, FILE *stream)
fgets:一次读一个字符串(遇到换行符结束),读取一行文件数据
char *fgets(char *s, int size, FILE *stream)
返回值
成功,返回目的数组的首地址,即s
失败,返回NULL
fwrite:一次写入多块文件数据
size_t fwrite(void *ptr, size_t size, size_t nmemb, FILE *stream) 将内存的数据原样写入到磁盘文件中
返回值:实际写入的块数
fread:一次读取多块文件数据
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream) 将磁盘数据原样输入到内存(读到的数据不便于查看)
返回值:实际读取到的块数(不足一块不计数,但是数据是读取的到)
fwrite 和 fread 成对使用,效率高,但阅读性低
fprintf:格式化写
int fprintf(FILE *restrict stream, const char *restrict format, ...); 其实参数只要传 文件指针、格式字符串、输出列表
fscanf:格式化读
int fscanf(FILE *restrict stream, const char *restrict format, ...);
fprintf 和 fscanf 成对使用,效率低,但阅读性高
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)