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语言教程

更多相关文章

  1. 数据结构排序算法总结
  2. .Net Core如何读取Json配置文件
  3. c语言程序是从源文件第一条语句开始执行的,这句话是错的吗
  4. c语言数据类型转换的方法
  5. c语言源程序文件的后缀是什么?
  6. c语言文件打开方式有哪些
  7. c语言如何读取txt文件内容?
  8. c语言源程序经过编译后,生成文件的后缀是什么?
  9. c程序编译后生成什么文件

随机推荐

  1. 在php中,从字符串中删除逗号后的所有内容
  2. php,检查文本拆分的正确性
  3. 在php中调用父方法的多种方法
  4. centos7 升级php版本
  5. php 正则问题 \s的疑问,求教。。。。
  6. 我如何使用Wikipedia API
  7. 使用Laravel在PHP中按时间戳,后端过滤SQL
  8. 查找具有特定数据字符串的数组并返回其具
  9. 使用PHP读取特定XML节点上特定数组的值
  10. Mac自带Apache和Php