文件的操作步骤:打开,读写,关闭
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 成对使用,效率低,但阅读性高
标签:文件,stream,int,char,API,FILE,size From: https://www.cnblogs.com/yachifeng/p/17227324.html