概念
在C库中定义的一组用于输入输出的函数
特点
1. 有缓冲机制,通过缓冲机制减少系统调用的次数,提高效率
2. 围绕流进行操作,流用FILE *描述,FILE是一个保存文件信息的结构体
3. 默认打开了三个流,stdin(标准输入)、stdout(标准输出)、stderr(标准错误)
缓存区
1. 行缓存:和终端相关的
刷新缓存的条件:
程序正常退出
\n刷新缓存
fflush强制刷新
缓存区满刷新
2. 全缓存:和文件相关的
刷新缓存的条件:
程序正常退出
fflush强制刷新
缓存区满刷新
3. 不缓存:没有缓存区,错误信息
函数
FILE *fopen(const char *path, const char *mode);
功能:打开文件
参数:path:打开文件路径
mode:打开方式:
r:只读,流定位到文件开头
r+:可读可写,流定位到文件开头
w:只写,文件不存在创建,文件存在清空
w+:可读可写,文件不存在创建,文件存在清空
a:追加,文件不存在创建,文件存在追加,流定位到文件末尾
a+:可读可写,文件不存在创建,文件存在追加,当第一次读文件流定位到开头,写文件定位到末尾
返回值:成功:文件流,FILE *
失败:NULL,并设置errno值
int fgetc(FILE *stream)
功能:从文件中读一个字符
参数:stream:文件流
返回值:成功:读到字符的ASCII码
失败或读到文件末尾:EOF
int fputc(int c, FILE * stream)
功能:向文件中写入一个字符
参数:c:要写的字符
stream:文件流
返回值:成功:写的字符的ASCII
失败:EOF
char * fgets(char *s, int size, FILE * stream);
功能:从文件中每次读取一行字符串
参数:s:存放字符串的地址
size:一次读取的字符个数
stream:文件流
返回值:成功:s的地址
失败或读到文件末尾:NULL
特性:每次实际读取的字符个数为size-1个,会在末尾自动添加\0
遇到\n结束一次读
int fputs(const char *s, FILE * stream);
功能:向文件中写字符串
参数:s:要写的内容
stream:文件流
返回值:成功:非负整数
失败:EOF
int fclose(FILE *stream);
参数:stream:文件流