原创C语言文件编程

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了原创C语言文件编程相关的知识,希望对你有一定的参考价值。

文件的概念

1、程序文件:源程序文件(如.c)、目标文件(如.obj)、可执行文件(如.exe)等,这些文件的内容是程序代码。

2、数据文件:供程序运行时读写的文件。

文件(file)通常是指存储在外部介质上数据的集合,操作系统将各种设备都统一视为文件来进行处理。

输入输出数据的过程如流水一般,数据从一处流向另一处,因此将输入输出形象地称为流,即数据流。流表示了信息从源到目的端的流动。

 

文件名

每个文件都需要一个唯一的标示——文件标识,即我们通常说的文件名。文件标识(文件名)包括三个部分:(1)文件路径;(2)文件名主干;(3)文件后缀。

如,这是一个文件名:  E:\C\example \ file .c

                                       1             2   3

1为文件路径,2为文件名主干,3为文件后缀。

 

文件的分类

数据文件可分为(1)ASCII文件;(2)二进制文件。

1、ASCII文件:文本文件(file.txt);

2、二进制文件:内存中的数据不加转换地输出到外存就是二进制文件。因为数据在内存中同样是以二进制形式存储的,所以二进制文件又称为映像文件(image file)。

 

文件缓冲区系统:系统会自动地在内存区中为程序中每一个正在使用的文件开辟一个文件缓冲区。从内存向磁盘输出数据必须先送到内存中的缓冲区,装载满缓冲区后才一起送到磁盘上。

程序数据区—>输出文件缓冲区—>磁盘;    磁盘—>输入文件缓冲区—>程序数据区

 

文件指针及文件操作

1、准备:所有的文件操作函数及定义类型都在"stdlib.h"中

 

2、文件指针:FILE *fp,即定义了一个可以指向文件的指针,对于文件的操作都需要依赖文件指针来进行

系统定义的3个文件指针变量:stdin/stdout/stderr

 

3、文件操作函数

  fopen("filename","optinon")

option 含义 如果指定的文件不存在

r(只读)

为了输入数据,打开一个文本文件 出错

w(只写)

为了输出数据,打开一个文本文件(清空所有内容后再写入新数据) 新建文件

a(追加)

向文本文件尾添加数据 出错

rb(只读)

为了输入数据,打开一个二进制文件 出错

wb(只写)

为了输入数据,新建一个二进制文件 新建文件

ab(追加)

向二进制文件尾添加数据 出错

r+(读写)

为了读和写,打开一个文本文件 出错

w+(读写)

为了先写数据,后读,新建一个文本文件 新建文件

a+(读写)

为了读和写,打开一个文本文件 出错

rb+(读写)

为了读和写,打开一个二进制文件 出错

wb+(读写)

为了先写数据,后读,新建一个二进制文件 新建文件

ab+(读写)

为了读和写,打开一个二进制文件 出错

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

成功打开时返回指向文件的文件指针地址,失败为NULL。

 

fclose(fp)

在使用完一个程序后应该关闭它,如果不关闭文件,通常会造成数据丢失。

成功关闭返回0,失败则返回EOF(-1)。

 

fgetc(fp)

读一个字符。成功返回所读的字符,失败返回EOF(-1)。

 

fputc(fp)

写一个字符。成功返回输出的字符,失败返回EOF(-1)。

 

fgets(str,n,fp)

读取长度为n的的字符串放入字符数组str中。成功返回str的地址,失败返回NULL。

 

fputs(str,fp)

把str数组里的字符串写到fp指向的文件中。成功返回0,失败返回非0值。

 

fprintf(fp,"string",输出表列)

fscanf(fp,"string",输入表列)

就是printf/scanf前加上fp指明输出文件,其他与printf/scanf一致。

 

fread(buffer,size,count,fp)

fwrite(buffer,size,count,fp)

buffer:从文件读入的数据的存储区的地址(fread);从buffer开始的存储区中的数据向文件输出(fwrite)。

size:要读写的字节数。

count:要读写多少个数据项,每个数据长度为size。

因为这两个函数都需要指定size,所以fread/fwrite通常用于二进制文件的输入输出。

 

feof(fp):检测文件位置标记是否到达文件末尾。

rewind(fp):将文件位置标记复位到文件的开头。

fseek(fp,(number)L,0/1/2):(number)L代表位移量,以字节为单位,+向前,-向后;0:文件开头,1:当前位置,2:文件末尾。

这三个函数可以改变文件标记位置,因此可以用来对文本进行随机读写。

 

本文是参考谭浩强的C程序设计第四版的内容写出来的,如需转载请注明出处。

以上是关于原创C语言文件编程的主要内容,如果未能解决你的问题,请参考以下文章

C语言-文件编程

C语言-文件编程

C语言编程中如何将一个文件中的信息转入到另一个文件

c语言编程题目求解

c语言编程以一定的软件打开一个特定的文件

c语言编程,我要把子文件中获取的数据传回主文件中的一个函数该怎么编程序