定义:
在C库中定义的一组专门用于输入输出的函数。
特点:
1)通过缓冲机制减少系统调用的次数,提高效率。
2)围绕流进行操作的,流用FILE *描述,FILE是结构体,保存文件的属性信息。
3)默认打开了三个流,stdin(标准输入)、stdout(标准输出)、stderr(标准错误)。
函数:
FILE *fopen(const char *path, const char *mode);
功能:打开文件
参数:path:打开文件的路径
mode:打开方式
r 只读,流被定位到文件开头
r+ 可读可写,流被定位到文件开头
w 只写,文件不存在创建,存在清空,流被定位到文件开头
w+ 可读可写,文件不存在创建,存在清空,流被定位到文件开头
a 追加,文件不存在创建,存在追加,流被定位到文件末尾
a+ 可读可写,文件不存在创建,存在追加;第一次读文件时流被定位到文件开头,写始终在末尾
返回值:成功:文件流
失败:NULL,并且设置errno
int fgetc(FILE *stream)
功能:从文件中读一个字符
参数:stream:文件流
返回值:
成功:读到字符的ASCII码
失败或读到文件末尾:EOF
int fputc(int c, FILE *stream)
功能:向文件中写入一个字符
参数:c:要写的字符
stream:文件流
返回值:成功:写的字符的ASCII
失败:EOF
int fclose(FILE *stream);
功能:关闭文件
参数:stream:文件流
代码:
#include <stdio.h>
int main(int argc, const char *argv[])
{
FILE *p;
p = fopen(argv[1], "r+");
if (NULL == p)
{
perror("error\n");
return -1;
}
int c;
char buf[32];
while (1)
{
c = fgetc(p);
if (c == EOF)
{
break;
}
fputc(c, stdout);
}
printf("\n");
fclose(p);
return 0;
}