先创建一个流
FILE * fp;
关于fopen ,有三个相关函数 fopen fdopen freopen
先看 fopen
原型: FILE * fopen(const char *path,const *char mode);
path: 要打开的文件 比如 当前目录下有个普通文件 叫做 hello, 那么要写成fopen("./hello",...);
如果是根目录下的home里的fs下的hello 写成fopen("/home/fs/hello",...);
mode: 文件的打开方式;具体有以下几种参数
r 或者rb: 打开文件,以只读的方式打开,该文件必须存在,否则失败,返回NULL
r+ 或者 r+b: 打开文件,可读可写,文件必须存在
w或者wb:打开文件,以只写方式打开,若文件里有内容,则清除内容。文件不存在则会创建;
w+或者w+b: 打开文件,可读可写,若文件里有内容,则清除内容。文件不存在则会创建;
a或者ab: 打开文件,只写,若文件有内容,则往里面追加你写的东西;文件不存在则创建;
a+或者a+b:打开文件,可读可写,若文件有内容,则往里面追加你写的东西;文件不存在则创建;
比如 当前目录下有个名叫hello的文件
那么这么写: fp=fopen("./hello","a");
打开hello,追加的方式,写入;
若hello不存在,则创建。
如果上述代码成功,fp得到的是一个地址,失败,fp得到的是NULL;
通常这么写:
if(NULL == (fp=fopen("./hello","a+")))
{
perror("open fail");
return -1;
}
打开文件hello,可读可写追加,若果打开失败,程序结束;
fclose();
原型:int fclose(FILE *stream);
stream: 已经打开过的流指针;
成功返回0;
失败返回EOF;
这么写: fclose(fp);
一般不加判断,因为基本不会报错。