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,不然返回非零值。
注:在实行完文件的操纵后,要举行“封闭文件”操纵。虽然顺序在完毕前会自动封闭一切的翻开文件,但文件翻开过多会致使体系运转迟缓,这时候就要自行手动封闭不再运用的文件,来进步体系团体的实行效力。
例1. 翻开文件并举行推断和封闭文件
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言语教程
以上就是c言语的文件存取体式格局只能是递次存取?的细致内容,更多请关注ki4网别的相干文章!