本文主要是介绍C语言第三十五弹---文件操作(上),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
✨个人主页: 熬夜学编程的小林
💗系列专栏: 【C语言详解】 【数据结构详解】
文件操作
1、为什么使用文件?
2、什么是文件?
2.1、程序文件
2.2、数据文件
2.3、文件名
3、二进制文件和文本文件
4、文件的打开和关闭
4.1、流和标准流
4.1.1、流
4.1.2、标准流
4.2、文件指针
4.3、文件的打开和关闭
总结
1、为什么使用文件?
2、什么是文件?
2.1、程序文件
2.2、数据文件
文件的内容不⼀定是程序,而是程序运行时读写的数据,比如程序运行需要从中读取数据的文件,或者输出内容的文件。
2.3、文件名
3、二进制文件和文本文件
数据在内存中以⼆进制的形式存储,如果不加转换的输出到外存的文件中,就是二进制文件。如果要求在外存上以ASCII码的形式存储,则需要在存储前转换。以ASCII字符的形式存储的文件就是文本文件。
#include <stdio.h>
int main()
{int a = 10000;FILE* pf = fopen("test.txt", "wb");fwrite(&a, 4, 1, pf);//二进制的形式写到文件中fclose(pf);pf = NULL;return 0;
}
在VS上打开⼆进制文件:
先执行此代码,创建test.txt文件,然后在源文件添加现有项。添加文件test.txt,以二进制编辑器打开该文件。
4、文件的打开和关闭
4.1、流和标准流
4.1.1、流
我们程序的数据需要输出到各种外部设备,也需要从外部设备获取数据,不同的外部设备的输入输出操作各不相同,为了方便程序员对各种设备进行方便的操作,我们抽象出了流的概念,我们可以把流想象成流淌着字符的河。
4.1.2、标准流
• stdin - 标准输入流,在大多数的环境中从键盘输入,scanf函数就是从标准输入流中读取数据。• stdout - 标准输出流,大多数的环境中输出至显示器界面,printf函数就是将信息输出到标准输出流中。• stderr - 标准错误流,大多数环境中输出到显示器界面。
4.2、文件指针
每个被使用的文件都在内存中开辟了⼀个相应的文件信息区,用来存放文件的相关信息(如文件的名字,文件状态及文件当前的位置等)。这些信息是保存在⼀个结构体变量中的。该结构体类型是由系统声明的,取名 FILE.
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结构的变量,并填充其中的信息,使用者不必关新细节。⼀般都是通过⼀个FILE的指针来维护这个FILE结构的变量,这样使用起来更加方便。
FILE* pf;//⽂件指针变量
定义pf是⼀个指向FILE类型数据的指针变量。可以使pf指向某个文件的文件信息区(是⼀个结构体变量)。通过该文件信息区中的信息就能够访问该文件。也就是说, 通过文件指针变量能够间接找到与它关联的文件。
4.3、文件的打开和关闭
//打开⽂件
FILE * fopen ( const char * filename, const char * mode );
//关闭⽂件
int fclose ( FILE * stream );
文件使用方式 | 含义 | 如果指定文件不存在 |
“r”(只读) | 为了输入数据,打开⼀个已经存在的文本文件 | 出错 |
“w”(只写) | 为了输出数据,打开⼀个文本文件 | 建立⼀个新的文件 |
“a”(追加) | 向文本文件尾添加数据 | 建立⼀个新的文件 |
“rb”(只读) | 为了输入数据,打开⼀个⼆进制文件 | 出错 |
“wb”(只写) | 为了输出数据,打开⼀个⼆进制文件 | 建立⼀个新的文件 |
“ab”(追加) | 向⼀个⼆进制文件尾添加数据 | 建立⼀个新的文件 |
“r+”(读写) | 为了读和写,打开⼀个文本文件 | 出错 |
“w+”(读写) | 为了读和写,建议⼀个新的文件 | 建立⼀个新的文件 |
“a+”(读写) | 打开⼀个文件,在文件尾进行读写 | 建立⼀个新的文件 |
“rb+”(读写) | 为了读和写打开⼀个⼆进制文件 | 出错 |
“wb+”(读写) | 为了读和写,新建⼀个新的⼆进制文件 | 建立⼀个新的文件 |
“ab+”(读写) | 打开⼀个⼆进制文件,在文件尾进行读和写 | 建立⼀个新的文件 |
/* fopen fclose example */
#include <stdio.h>
int main()
{FILE* pFile;//打开文件pFile = fopen("myfile.txt", "w");//文件操作if (pFile != NULL){fputs("fopen example", pFile);//关闭文件fclose(pFile);}return 0;
}
总结
本篇博客就结束啦,谢谢大家的观看,如果公主少年们有好的建议可以留言喔,谢谢大家啦!
这篇关于C语言第三十五弹---文件操作(上)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!