soap公司网站,毕设 网站开发的必要性,潮州营销型网站建设推广,做问卷的网站好C语言之文件操作#xff08;上#xff09; 文章目录 C语言之文件操作#xff08;上#xff09;1. 什么是⽂件#xff1f;1.1 程序⽂件1.2 数据⽂件1.3 ⽂件名 2. ⼆进制⽂件和⽂本⽂件3. ⽂件的打开和关闭3.1 流和标准流3.1.1 流3.1.2 标准流 4. ⽂件指针5. 文件的打开与关…C语言之文件操作上 文章目录 C语言之文件操作上1. 什么是⽂件1.1 程序⽂件1.2 数据⽂件1.3 ⽂件名 2. ⼆进制⽂件和⽂本⽂件3. ⽂件的打开和关闭3.1 流和标准流3.1.1 流3.1.2 标准流 4. ⽂件指针5. 文件的打开与关闭 1. 什么是⽂件 磁盘上的⽂件是⽂件。但是在程序设计中我们⼀般谈的⽂件有两种程序⽂件、数据⽂件从⽂件功能的⻆度来分类的
1.1 程序⽂件 程序⽂件包括源程序⽂件后缀为.c,⽬标⽂件windows环境后缀为.obj,可执⾏程序windows环境后缀为.exe
1.2 数据⽂件 ⽂件的内容不⼀定是程序⽽是程序运⾏时读写的数据⽐如程序运⾏需要从中读取数据的⽂件或者输出内容的⽂件
1.3 ⽂件名 ⼀个⽂件要有⼀个唯⼀的⽂件标识以便⽤⼾识别和引⽤。 ⽂件名包含3部分⽂件路径⽂件名主⼲⽂件后缀 例如 c:\code\test.txt 为了⽅便起⻅⽂件标识常被称为⽂件名
2. ⼆进制⽂件和⽂本⽂件
数据⽂件又被称为⽂本⽂件或者⼆进制⽂件
数据在内存中以⼆进制的形式存储如果不加转换的输出到外存就是⼆进制⽂件如果要求在外存上以ASCII码的形式存储则需要在存储前转换。以ASCII字符的形式存储的⽂件就是⽂本⽂件 字符⼀律以ASCII形式存储数值型数据既可以⽤ASCII形式存储也可以使⽤⼆进制形式存储 例如10000如果以ASCII形式存储则磁盘占5个字节一个字符为1个字节而以二进制形式存储则磁盘占4个字节一个整型
ASCII形式存储将每个字符转为对应的ASCII值在将对应ASCII值转为二进制 二进制形式存储将值转为二进制形式
3. ⽂件的打开和关闭
3.1 流和标准流
3.1.1 流 在输入/输出数据的时候会输入/输出到不同的设备中不同设备的输入/输出是以不同的方式的为了方便程序员的操作我们抽象出了流的概念我们可以把流想象成流淌字符的河流
⼀般情况下我们要想向流⾥写数据或者从流中读取数据都是要打开流然后操作
3.1.2 标准流
C语言在程序启动时默认开打了三种流 stdin — 标准输⼊流在⼤多数的环境中从键盘输⼊scanf函数就是从标准输⼊流中读取数据
stdout — 标准输出流⼤多数的环境中输出⾄显⽰器界⾯printf函数就是将信息输出到标准输出 流中
stderr — 标准错误流⼤多数环境中输出到显⽰器界⾯
这是默认打开了这三个流我们使⽤scanf、printf等函数就可以直接进⾏输⼊输出操作的。
stdin、stdout、stderr三个流的类型是 FILE*通常称为⽂件指针。 C语⾔中就是通过FILE* 的⽂件指针来维护流的各种操作的
4. ⽂件指针 缓冲⽂件系统中关键的概念是“⽂件类型指针”简称“⽂件指针” 每个被使⽤的⽂件都在内存中开辟了⼀个相应的⽂件信息区⽤来存放⽂件的相关信息如⽂件的名字⽂件状态及⽂件当前的位置等。这些信息是保存在⼀个结构体变量中的。该结构体类型是由系统声明的取名FILE
在VS2013编译环境提供的 stdio.h 头⽂件中有以下的⽂件类型申明:
struct _iobuf {char *_ptr;int _cnt;char *_base;int _flag;int _file;int _charbuf;int _bufsiz;char *_tmpfname;};
typedef struct _iobuf FILE;不同的C编译器的FILE类型包含的内容不完全相同但是⼤同⼩异 不用关系这段代码是如何实现的当我们打开⼀个⽂件的时候系统会根据⽂件的情况⾃动创建⼀个FILE结构的变量并填充其中的信息使⽤者不必关⼼细节
5. 文件的打开与关闭
⽂件在读写之前应该先打开⽂件在使⽤结束之后应该关闭⽂件
ANSIC 规定使⽤ fopen 函数来打开⽂件 fclose 来关闭⽂件
//打开⽂件
FILE * fopen ( const char * filename, const char * mode );
//关闭⽂件
int fclose ( FILE * stream );filename为文件的路径 mode为打开方式只读只写… stream 为文件指针
mode模式有以下几种 注意 当任意读取文件的方式读取不存在的文件时将会报错打开文件也是有返回值的当打开失败会返回一个NULL指针所以最好对返回值进行判断和动态内存管理相似开辟空间需要free释放,同理打开文件也需要关闭文件fclose并且将文件指针置NULL 示例 #include stdio.hint main()
{FILE* pf fopen(test.txt,r);//只读方式打开文件fclose(pf);//关闭文件return 0;
}