栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

文件操作(C高阶)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

文件操作(C高阶)

1. 文件的分类

我们一般谈的文件有两种:程序文件和数据文件

1.1 程序文件

包含源程序文件(后缀为.c),目标文件(window环境后缀为.obj),可执行程序(window环境后缀为.exe)

1.2 数据文件

程序运行时读写的数据,比如程序运行需要从中读取数据的文件,或者输出内容的文件

 


2. 文件的打开和关闭 2.1 文件指针

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

定义pf是一个指向FILE类型数据的指针变量,可以使pf指向某个文件的文件信息区,通过文件指针变量能够找到与它关联的文件. 

2.2 文件的打开和关闭

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

ANSIC规定用fopen函数打开文件,fclose来关闭文件

//打开文件

FILE * fopen ( const char * filename, const char * mode );
//关闭文件
int fclose ( FILE * stream );

 打开方式如下

文件使用方式含义如果指定文件不存在
“r”(只读)为了输入数据,打开一个已经存在的文本文件出错
“w”(只写)为了输出数据,打开一个文本文件建立一个新的文件
“a”(追加)向文本文件尾添加数据建立一个新的文件
“rb”(只读)为了输入数据,打开一个二进制文件 出错
“wb”(只写)为了输出数据,打开一个二进制文件建立一个新的文件
“ab”(追加)向一个二进制文件尾添加数据出错
“r+”(读写)为了读和写,打开一个文本文件出错
“w+”(读写)为了读和写,建议一个新的文件建立一个新的文件
“a+”(读写)打开一个文件,在文件尾进行读写 建立一个新的文件
“rb+”(读写)为了读和写打开一个二进制文件出错
“wb+”(读写)为了读和写,新建一个新的二进制文件 建立一个新的文件
“ab+”(读写)打开一个二进制文件,在文件尾进行读和写 建立一个新的文件

 

 

 

 

 

 

 

 

 

 


3.文件的顺序读写 
功能函数名适用于
字符输入函数 fgetc所有输入流
字符输出函数fputc所有输出流
文本行输入函数fgets所有输入流
文本行输出函数fputs所有输出流
格式化输入函数fscanf所有输入流
格式化输出函数fprintf所有输出流
二进制输入fread文件
二进制输出fwrite

文件

 


4.文件的随机读写 4.1 fseek

根据文件指针的位置和偏移量来定位文件指针。

int fseek ( FILE * stream, long int offset, int origin );
 4.2 ftell

返回文件指针相对于起始位置的偏移量

long int ftell ( FILE * stream );
 4.3 rewind

让文件指针的位置回到文件的起始位置

void rewind ( FILE * stream );

 


5.文本文件和二进制文件

根据数据的组织形式,数据文件被称为文本文件或者二进制文件。
数据在内存中以二进制的形式存储,如果不加转换的输出到外存,就是二进制文件。
如果要求在外存上以ASCII码的形式存储,则需要在存储前转换。以ASCII字符的形式存储的文件就是文本文件。
一个数据在内存中是怎么存储的呢?
字符一律以ASCII形式存储,数值型数据既可以用ASCII形式存储,也可以使用二进制形式存储。
如有整数10000,如果以ASCII码的形式输出到磁盘,则磁盘中占用5个字节(每个字符一个字节),而二进制形式输出,则在磁盘上只占4个字节.


6.文件读取结束的判定

被错误使用的feof

牢记:在文件读取过程中,不能用feof函数的返回值直接用来判断文件的是否结束。
而是应用于当文件读取结束的时候,判断是读取失败结束,还是遇到文件尾结束。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1001233.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号