c 文件操作

文章参考:

http://www.cppblog.com/ivenher/articles/1493.html

http://baike.baidu.com/view/656648.html?fromTaglist

 

一. 文件的打开
fopen
    调用方式:
    FILE *fp;
    fp=fopen(文件名,使用文件方式);

    说明:
    (1)、使用文件方式主要有:只读(r)、只写(w)、追加(a),还有配合"+"使用的方式,如r+、w+、a+;
    (2)、默认打开的文件为文本文件,用't'表示,可以省略。如果打开二进制的文件,则使用'b'。例如:r、rt、rb等。
    (3)、如果不能实现打开的任务,则函数返回NULL值。

二. 文件的读写

1、fputc
    调用方式:
    FILE *fp;
    char c;
    fputc(c,fp);

    说明:
    (1)、fputc向文件写入一个字符。   
    (2)、输出成功则返回值就是输出的字符,如果失败则返回一个EOF。
2、fgetc
    调用方式:
    FILE *fp;
    char c;
    c=fgetc(fp);
    
    说明:
    (1)、fgetc向文件读取一个字符。
    (2)、函数返回读取的字符,如果遇到文件结尾,则返回EOF。
    (3)、建议使用feof函数来判断是否文件结束。如果文件结束,函数feof返回值为1,否则为0。

三、

函数 feof();

原型:int feof(FILE *stream);

      feof(fp)有两个返回值:如果遇到文件结束,函数feof(fp)的值为1,否则为0。

  EOF是文件结束标志的文件。在文本文件中,数据是以字符的ASCⅡ代码值的形式存放,ASCⅡ代码的范围是0到255,不可能出现-1,因此可以用EOF作为文件结束标志。   

     当把数据以二进制形式存放到文件中时,就会有-1值的出现,因此不能采用EOF作为二进制文件的结束标志。为解决这一个问题,ASCI C提供一个feof函数,用来判断文件是否结束。feof函数既可用以判断二进制文件又可用以判断文本文件。

需要注意的是:feof函数只是判断,不会移动指针。

 

四、示例

int main() { FILE *fp; int i=0,length=0,res_crc=0; //fp = fopen("preboot.bin","rb"); fp = fopen("u-boot_b_1.bin","rb"); if(fp==NULL) printf("%s","error/n"); printf("%s","success/n"); char tst[222000]="a"; /*for (i=0;i<769;i++){ tst[i]=fgetc(fp); }*/ while(!feof(fp)){ tst[i++]=fgetc(fp); } length=i-1; res_crc=cal_crcN(tst,length); printf("res_crc=%x/n",res_crc); printf("length=%d/n",i); }

你可能感兴趣的:(c 文件操作)