设为首页 加入收藏

TOP

C语言的文件操作
2014-11-23 20:25:07 来源: 作者: 【 】 浏览:18
Tags:语言 文件 操作
“文件”是指存储在计算机外部存储器中的数据的集合。计
算机根据 文件的名字,完成对 文件的操作
C语 言将 文件看作是字符构成的序列,即字符流。其基本 的存储单位是字节。
文件的读写操作函数,它们都在头 文 件stdio.h定义的:
按字符读写的函数fgetc()、fputc()
按字符串读写的函数fgets()、fputs()
按格式要求读写的函数fprintf()、fscanf()
按数据块读写的函数fread()、fwrite()


文件指针变量=fopen( 件名,处理文件方式);
文件不存在等原因造成不能打开 件,则调 fopen()后将返回一个空指针 NULL。


fputc(字符, 文件型指针变量)
fp为一个文件类型指针变量,上式将字符常 量’A’(也可以是字符型变量)写 文件当前位 置,并且使 件位置指针下移一个字节。如果 写入操作成功,返回值是该字符,否则返回 EOF。




fgetc()函数
fgetc( 件型指针变量)
返回文件当前位置的字符,并且使 件位置指针下移一个字符。如果遇到文件结束, 则返回值为文件结束标志EOF。


fputs(字符串, 件型指针变量)
写 文件成功,函数 返回值为0,否则为EOF。


fgets(字符数组,字符数, 件型指针变量)
其作 是从fp指向的 件的当前位置开始读取 n-1个字符,并加上字符串结束标志’\0’一起放入字符数组str中。如果从文件读取字符时遇 到换行符或文件结束标志EOF,读取结束。 函数返回值为字符数组str的 地址。


fprintf(文件型指针变量, 格式控制, 输出表列)
它的作 是将变量num、name、score按照%ld、 %s、%5.1f的格式写 入fp指向的文件的当前位置


fscanf( 件型指针变量, 格式控制,输入表列);
它的作 是从fp指向的文件的当前位置开始,按
照%ld、%s、%5.1f的格式取出数据,赋给变量
num、name和score。


按数据块读写的函数fread()、fwrite()


fwrite(写 文件的数据块的存放地址,一个数据块的字节数,数据块的个数, 件型指针变量);
例如:已知struct student 类型的数组stu[20],则fwrite(&stu[1], sizeof(struct student ), 2, fp);
如果成功返回写入的数据块的数量 2


fread()函数
函数fread()的作 用是从 件中读出成批的数据块
fread(从文件读取的数据块的存放地址, 个数据块的字节数,数据块的个数,文件型指针变量);


已知stu1是 一个结构体struct student变量,则
fread(&stu1, sizeof(struct student ), 1, fp);
从 件类型指针fp指向的文件的当前位置开始,读取1个数据块,该数据块为结构体struct student类型变量所占字节数,然后将读取的内容放入变量stu1中。
注意:fwrite()和fread()函数读写文件时,只有使 二 进制方式,才可以读写任何类型的数据。最常 于读写数组和结构体类型数据


文件在使用时,指向打开的文件的指针 可以指 文件的当前位置,当每次读 取或写入数据时,是从文件指针的当 前位置开始读取或写入数据的,然后 指针自动移到读写下 个数据的位 置。所以文件指针的定位非常重要。
C语言的stdio.h头文件中定义的一 些文件操作中常用的库函数。
函数feof()、rewind()、fseek()、 ftell()


feof(文件型指针变量);
如果文件型指针指向的文件的当前位置为结束标志EOF,则函数返回 一个 非零值,否则返回0值。


函数rewind()将令指向文件的指针 重新指向文件的开始位置。函数无 返回值。其调 形式为:
rewind( 件型指针变量);
fseek( 件型指针变量,偏移量,起始位置);



函数fseek()
函数fseek()可以将使得指向 件的指针变量 指向 件的任何一个位置,实现随机读写文件。它调用的形式为:
fseek( 文件型指针变量,偏移量,起始位 置);
函数fseek()将以文件的起始位置为基准,根据偏移量往前或往后移动指针。其中偏移量 是 个长整型数,表示从起始位置移动的字节数,正数表示指针往后移、负数表示指针往前移。起始位置用数字0、1、2或者用名字SEEK_SET、SEEK_CUR、SEEK_END 代表 文件开始、文件当前位置和文件结束位 置。如果指针设置成功,返回值为0,否则 为非0值。


函数ftell()
函数ftell()用于测试指向 件的指针的当前位置。它的调 方式为:
ftell(文件型指针变量);
函数的返回值是 个常整型数,如果 测试成功,则返回指向文件的指针当 前指向的位置距离 件开头的字节 数,否则返回-1L
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇objective-c数据类型 下一篇纯C语言:检索与周游广度遍历源码

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: