Chinaunix首页 | 论坛 | 博客
  • 博客访问: 74010
  • 博文数量: 28
  • 博客积分: 1360
  • 博客等级: 中尉
  • 技术积分: 335
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-15 21:56
文章分类

全部博文(28)

文章存档

2011年(1)

2010年(8)

2009年(4)

2008年(15)

我的朋友
最近访客

分类: C/C++

2008-03-31 00:23:38

                                      C语言中的文件!
所谓“文件”,一般指存储在外部介质上数据的集合。
文件的打开
用fopen()函数来实现打开文件。
FILE *fp;
fp=fopen(文件名,使用文件方式);
即:打开一个文件时,通知编译系统以下3个信息:1,需要打开的文件名,也就是准备访问的文件的名字;
                                       2,使用文件的防止(“读”还是“写”等);
                                       3,让哪一个指针变量指向被打开的文件。
常用下面方法打开一个文件:
       if((fp=fopen("filename","r"))==NULL)
        {
                printf("cannot open this file\n");
                exit(0);       
            //exit函数的作用是关闭所有文件,终止正在执行的函数,待用户检查出错误,修改后再运行
        }
在程序开始运行时,系统自动打开了3个标准文件:标准输入、标准输出、标准出错输出。
 
用fclose函数关闭文件。fclose函数调用的一般形式为
        fclose(文件指针);
 
把一个字符写到磁盘文件上去:fputc(ch,fp);
从指定文件读入一个字符:    ch=fgetc(fp);
如果想顺序读入一个二进制文件中的数据,可以用:
while(!feof(fp))        //foef(fp)用来测试fp所指向的文件当前状态是否“文件结束”,如果文件结束,函数feof(fp)的值为1,否则为0
{
        c=fgetc(fp);
}
 
若希望每次读取数据文件采用字符串方式,就必须通过fgets()输入函数来读取;使用fputs()输出函数来写入。
        char *fgets(char *str,int n,FILE *fp)
        功能:在文件指针fp所指向文件位置读取n个字符并放入str字符串,如果读不到字符串时会返回NULL;
        char *fputs(char *str,FILE *fp)
        功能:将字符串str写入文件指针fp所指向文件的位置。写入数据成功时会返回非零值,写入失败会返回EOF。
       
fread和fwrite函数用来读写一个数据块:fread(buffer,size,count,fp);
                           fwrite(buffer,size,count,fp);      
        buffer:是一个指针。对fread来说,它是读入数据的存放地址,对fwrite来说,是要输出数据的地址(以上指的是起始地址)
        size:要读写的字节数
        count:要进行读写多少个size字节的数据项
        fp:文件型指针
fprintf函数、fscanf函数与printf函数、scanf函数的作用相仿,都是格式化读写函数。只是一点不同:fprintf和fscanf函数的读写对象不是终端而是磁盘文件
        它们的一般调用方式为:fprintf(文件指针,格式字符串,输出表列);
                           fscanf(文件指针,格式字符串,输入表列);
rewind函数
rewind函数的作用是使位置指针重新返回文件的开头,此函数没有返回值。
 
fseek函数和随机读写
用fseek函数可以实现改变文件的位置指针。
        fseeek(文件类型指针,位移量,起始点)
“起始点”用0,1,2代替,0代表“文件开始”,1代表“文件当前位置”,2代表“文件末尾”
ANSI C和大多数C版本要求位移量是long型数据,这样当文件的长度大于64KB时不致出问题。ANSI C标准规定在数字的末尾加一个字母L,就表示是long型。
 
ftell函数
ftell函数的作用是得到流式文件中的当前位置,用相对于文件开头的位移量来表示--i=ftell(fp);
 
C标准提供一些函数用来检查输入输出函数调用中的错误。
ferror函数
ferror(fp);
如果ferror返回值为0(假),表示未出错;如果返回一个非零值,表示出错。
 
clearerr函数
clearerr的作用是使文件错误标志和文件结束标志置为0.
       
阅读(884) | 评论(0) | 转发(0) |
0

上一篇:如何获取文件大小

下一篇:活着真好

给主人留下些什么吧!~~