C标准文件IO

/欢迎大家批评指正/

C标准文件IO类型 FILE*

API接口:f开头的函数

打开文件:FILE *fopen(const char *path, const char mode) 打开流
path:字符串,文件路径
mode:字符串 权限
r 打开文本文件,用于读。流被定位于文件的开始。
r+ 打开文本文件,用于读写。流被定位于文件的开始。
w 将文件长度截断为零,或者创建文本文件,用于写。流被定位于文件的开始。
w+ 打开文件,用于读写。如果文件不存在就创建它,否则将截断它。流被定位于文件的开始。
a 打开文件,用于追加 (在文件尾写)。如果文件不存在就创建它。流被定位于文件的末尾。
a+ 打开文件,用于追加 (在文件尾写)。如果文件不存在就创建它。读文件的初始位置是文件的开始,但是输出总是被追加到文件的末尾。
返回值:
成功:FILE
指针
失败:NULL

关闭文件:int fclose(FILE* stream);
参数:fopen的返回值
返回值:
成功:0
失败:EOF

读取文件:
int fgetc(FILE* stream); 读取一个字符
参数:fopen的返回值
返回值:
成功:读取到的字符或EOF
失败:出错

char* fgets(char* s,int size,FILE* stream);读取一个字符串
参数一: 读取出来存放的首地址,末尾自动加结束符‘\0’
参数二:能读取到的最大的字节数
参数三:fopen的返回值
返回值:
成功:读取的字符串
失败:NULL

size_t fread(void *ptr,size_t size,size_t nmemb,FILE *stream);读取一个数据块
参数一:可读取任意类型的数据放在ptr地址
参数二:一块数据大小
参数三:数据块数目
参数四:fopen 的返回值
返回值:
成功:读取到数据块的数目
失败:小于 nmemb 或 0

int fscanf(FILE *stream, const char *format, …);按格式读取 类比scanf
参数一:fopen返回值
参数二:格式 如:%d,%c…
参数三:存储数据的地址
返回值:
成功:输入项的成功数
失败:少于输入项或0

写入文件:
int fputc(int c,FILE* steam);写一个字符
参数一:要写入的字符
参数二:fopen的返回值
返回值:
成功:成功写入的字符
失败:EOF

int fputs(const char* s,FILE* stream);写一个字符串,字符串没有‘\0’
参数一:要写入的字符串
参数二:fopen的返回值
返回值:
成功:非负数
失败:EOF

size_t fwrite(const void* ptr,size_t size,size_t nmemb,FILE* stream);数据块写
参数一:可以接收任何类型的数据
参数二:一块数据的大小
参数三:数据块数目
参数四:fopen 返回值
返回值:
成功:nmenb的值
失败:小于nmemb的值或0

int fprintf(FILE *stream, const char *format, …); 按格式写入 类比printf
参数一:fopen返回值
参数二:格式 如:%d,%s
参数三:数据

光标移动:
int fseek(FILE *stream, long offset, int whence);
参数一:fopen返回值
参数二:偏移量
参数三: 计算偏移量的初始位置
SEEK_SET:文件开头
SEEK_CUR:文件当前位置
SEEK_END:文件末尾
返回值:
成功:偏移量
失败:-1

void rewind(FILE *stream);将光标设置为文件开头 等价于fseek(stream,0,SEEK_SET)
参数:fopen返回值

猜你喜欢

转载自blog.csdn.net/weixin_43657281/article/details/83930002