c语言的文件存取方式只能是顺序存取?
c语言的文件存取方式包括顺序存取方式和随机存取(需要使用fseek等函数帮助)方式两种。
顺序读取
顺序读取也就是从上往下,一笔一笔读取文件的内容。保存数据时,将数据附加在文件的末尾。这种存取方式常用于文本文件,而被存取的文件则称为顺序文件。
随机存取
随机存取方式多半以二进制文件为主。它会以一个完整的单位来进行数据的读取和写入,通常以结构为单位。
打开文件
函数原型为:_CRTIMP FILE * __cdecl fopen(const char *, const char *);
第一参数为文件名,第二个参数为打开模式。
打开成功,fopen返回一个结构指针地址,否则返回一个NULL。如果没有指定文件路径,则默认为当前工作目录。如:
FILE *fp; fp = fopen(c:\\temp\\test.txt, r) //由于反斜杠\是控制字符,所以必须再加一个反斜杠
使用fopen()函数打开的文件会先将文件复制到缓冲区。注意:所下达的读取或写入动作,都是针对缓冲区进行存取而不是磁盘,只有当使用fclose()函数关闭文件时,缓冲区中的数据才会写入磁盘。
文件打开模式
r:只能从文件中读数据,该文件必须先存在,否则打开失败 w:只能向文件写数据,若指定的文件不存在则创建它,如果存在则先删除它再重建一个新文件 a:向文件增加新数据(不删除原有数据),若文件不存在则打开失败,打开时位置指针移到文件末尾 r+:可读/写数据,该文件必须先存在,否则打开失败 w+:可读/写数据,用该模式打开新建一个文件,先向该文件写数据,然后可读取该文件中的数据 a+:可读/写数据,原来的文件不被删去,位置指针移到文件末尾
打开二进制文件的模式与打开文本文件的含义是一样的,不同的是模式名称里面多一个字母'b’,以表示以二进制形式打开文件。
函数原型为:_CRTIMP int __cdecl fclose(FILE *);
关闭成功返回值0,否则返回非零值。
注:在执行完文件的操作后,要进行“关闭文件”操作。虽然程序在结束前会自动关闭所有的打开文件,但文件打开过多会导致系统运行缓慢,这时就要自行手动关闭不再使用的文件,来提高系统整体的执行效率。
FILE *fp; fp = fopen(c:\\temp\\test.txt, r); if(fp == NULL) printf(fail to open the file! \n); else { printf(The file is open! \n); fclose(fp); }
推荐课程:C语言教程
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。