函数简介:
函数功能:打开一个
文件
函数原型:FILE * f
open(const char * path,const char * mode);
所需库:<
stdio.h>
参数说明:
mode有下列几种形态字符串:
r+ 以可读写方式打开
文件,该文件必须存在。
rw+ 读写打开一个文本
文件,允许读和写。
wb 只写打开或新建一个
二进制文件;只允许写数据。
wb+ 读写打开或建立一个
二进制文件,允许读和写。
ab+ 读写打开一个
二进制文件,允许读或在文件末追加数据。
at+ 打开一个叫string的文件,a表示append,就是说写入处理的时候是接着原来文件已有内容写入,不是从头写入覆盖掉,t表示打开文件的类型是文本文件,+号表示对文件既可以读也可以写。
操作
在文件操作时,需要注意以下几点问题
1、在定义文件指针时,
要将文件指针指向空;如 FILE *fp = NULL;
2、文件操作完成后,需要将文件关闭,一定要注意,
否则会造成文件所占用内存泄露和在下次访问文件时出现问题。
3、
文件关闭后,需要将文件指针指向空,这样做会防止出现游离指针,而对整个工程造成不必要的麻烦;如:fp = NULL;
fwrite:
fclose:
函数名: fclose()
程序例:
#include <
string.h>
#include <
stdio.h>
int main(void)
{
FILE *fp;
char buf[11] = "0123456789";
fp = fopen("DUMMY.FIL", "w");/* create a file containing 10 bytes(创建一个包含10个字节的文件) */
fwrite(&buf, strlen(buf), 1, fp);/*将buf内容写入到文件中*/
fclose(fp);/* close the file (关闭文件)*/
return 0;
}
如果流成功关闭,fclose 返回 0,否则返回EOF(-1)。
如果流为NULL,而且程序可以继续执行,fclose设定error number给EINVAL,并返回EOF。
看一下测试代码:
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *fp = NULL;//在定义文件指针时,要将文件指针指向空;如 FILE *fp = NULL;
char ch;
if((fp = fopen("output.txt","wt+"))==NULL)
{
printf("cannot open file strike any key exit!");
getchar();
exit(1);
}
printf("input a string:\n");
ch=getchar();
while(ch!='\n')
{
fputc(ch,fp);
ch=getchar();
}
rewind(fp);//将fp指针指向文件头处
ch=fgetc(fp);
while(ch!=EOF)
{
putchar(ch);
ch=fgetc(fp);
}
printf("\n");
fclose(fp);//文件操作完成后,需要将文件关闭,一定要注意,否则会造成文件所占用内存泄露和在下次访问文件时出现问题。
/*文件关闭后,需要将文件指针指向空,
这样做会防止出现游离指针,而对整个工程造成不必要的麻烦;如:fp = NULL;*/
fp = NULL;
return 0;
}
测试结果: