C 语言

关注公众号 jb51net

关闭
首页 > 软件编程 > C 语言 > C语言文件操作

C语言文件操作详情(一)

作者:不知名小赖

这篇文章主要介绍了C语言文件操作详情,主要讨论的是数据文件,通过处理的磁盘上的文件展开主题内容介绍,需要的小伙伴可以参考一下,希望对你的学习有所帮助

前言:

文件操作重要吗?

当然重要:如果我们想让自己的程序拥有记忆功能,那就需要把要记忆的信息和数据存入到一个外部文件里,以便下次提取。

一、文件是什么

磁盘上的文件是文件。但在程序设计中,我们一般谈的文件有两种:程序文件、数据文件

VS编译器上所处理的数据的输入和输出都是以终端为对象的,即从终端的键盘上输入输入数据,运行结果显示到显示器上。但在有时候我们会把数据输出到磁盘上,在需要的时候再从磁盘上把数据读取到内存中使用,这里就是处理的磁盘上的文件。

文件包含三部分:文件路劲+文件名主干+文件后缀  

例如:c:\code\test.txt

二、文件类型

根据数据的组织形式数据文件被称为文本文件二进制文件

例如,数1000的存储形式为:

ASCLL码形式: 00110001 00110000 00110000 00110000 00110000 占5个字节
二进制形式存储:00000000 00000000 00100111 00010000 占4个字节

三、文件缓冲区

我们在学习C语言文件操作时我们也要简单的了解一下C语言的文件缓冲区概念:

缓冲区是为了让低速的输入输出设备和高速的用户程序能够协调工作,并降低输入输出设备的读写次数。

四、文件指针

缓冲文件系中:关键的概念是“文件类型指针”,简称**“文件指针”**
  每个被使用的文件都在内存中开辟了一个相应的文件信息区,用来存放文件的相关信息(如:文件的名字,状态及文件当前的位置等)。这些信息保存在一个结构体变量中的。该结构体变量是有系统申明的取名:FILE

在使用的vs2013编译器的头文件stdio.h有以下的文件类型声名:

C语言文件操作<一>_文本文件

不同c编译器的FILE所包含的内容不完全相同,但是大同小异,

每当打开一个文件的时候,系统会根据文件的情况自动创建一个FILE结构的变量,并 填充其中的信息。

一般都是通过一个FILE的指针来维护这个结构的变量。

FILE* pf;//文件指针变量

定义pf是一个指向FILE类型数据的指针变量,可以使pf指向某个文件的文件信息区(是一个结构体变量)。通过该文件信息区中的信息就可以访问该文件。也就是说,通过文件指针变量能够找到与它关联的文件

C语言文件操作<一>_打开文件_02

五、文件的打开和关闭

文件在读写之前应该先打开文件,在使用结束之后应该关闭文件

编写程序时,在打开文件的同时,都会返回一个FILE的指针变量指向该文件相当于建立了指针与文件的关系。

FILE *fopen(const char *filename, const char *mode);
int fclose(FILE *stream);

打开文件一般有两种方式:

//以读的方式打开
//当前路劲下(相对路径)打开文件test.txt
fopen("test.txt", "r");
//绝对路径打开
fopen("E:\\C++file\\file\\test.txt", "r");

打开方式如下:

注意:

  • 用 “r” 方式打开的文件,不能向其输入数据,并且该文件已存在,否则出错;
  • 用 “w” 方式打开的文件,只能向该文件输入数据,如果所打开的文件不存在,则在打开时新建一个以指定的名字命名的文件;如果指定文件存在,则在打开时将该文件删去,然后新建一个新的文件;
  • 如果函数 fopen 打开文件出错,则fopen返回一个空指针值 NULL;
  • 在程序开始运行时,系统自动打开3个标准文件:标准输入(stdin),标准输出(stdout),标准出错输 出(stderr)。如果要使用输入输出终端,则不需要打开,可以直接使用,如fputc(stdout,‘a’);向屏幕输出字符a。

C语言文件操作<一>_打开文件_03

到此这篇关于C语言文件操作详情(一)的文章就介绍到这了,更多相关C语言文件操作内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文