| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> C语言文件操作 -> 正文阅读 |
|
[C++知识库]C语言文件操作 |
目录 一、什么是文件在程序设计中,我们一般谈的文件有两种:程序文件、数据文件。 程序文件: 包括源程序文件(后缀为.c ),目标文件( windows环境后缀为.obj ) ,可执行程序( windows环境后缀 为.exe )。 数据文件: 文件的内容不一定是程序,而是程序运行时读写的数据,比如程序运行需要从中读取数据的文件 或者输出内容的文件。 数据文件又分为”文本文件“和”二级制文件“ 二进制文件:数据在内存中以二进制的形式存储,如果不加转换的输出到外存,这种文件我们是看不懂的是一堆乱七八糟的符号,只有电脑才可以读懂。 文本文件:如果要求在外存上以ASCII码的形式存储,则需要在存储前转换。以ASCII字符的形式 存储的文件就是文本文件。这种文件我们是看得懂的,例如我们在记事本看到的”字“”字母“”数字“ ,这样的文件就是文本文件。 二、文件缓冲区ANSIC采用”缓冲文件系统“来处理数据文件,系统会为每一个正在使用的文件开辟一块”文件缓冲区“。当程序从内存向磁盘输出数据时,会将数据先送到输出缓冲区中,等输出缓冲区满了之后,才将数据一起送到磁盘;当程序从磁盘向内存读数据时,数据会先被送到输入缓冲区,等输入缓冲区满了之后,才将数据一起送到磁盘;另外程序结束时,缓冲区的内容也会被送到内存或磁盘。 三、文件指针每个被使用的文件都在内存中开辟了一个相应的文件信息区,用来存放文件的相关信息(如文件的 名字,文件状态及文件当前的位置等)。这些信息是保存在一个结构体变量中的。该结构体类型是 由系统声明的,取名FILE。 该结构体声明如下:
每当打开一个文件的时候,系统会根据文件的情况自动创建一个FILE结构的变量,我们就可以通 过创建一个FILE的指针来维护这个FILE结构的变量。
四、文件的打开和关闭。文件的打开用fopen函数,文件的关闭用fclose函数。 它们的原型如下:
filenname:这个参数填的是文件名 mode:这个参数代表要对文件进行的操作 stream:这个参数代表指向要关闭的文件的指针。 文件的操作方式有:
文件的读写函数有(这些函数是顺序读写):
?下面我们用代码来体会:
我们对data.txt,进行”r“(读)操作,因为当前文件夹下没有创建这个文件,所以出错。 现在我们在当前目录下,创建一个diata.txt文件夹,并输入字符"abcd",使用fgetc函数来读取数据,这个函数的作用是读取一个字符后,指针往下一个字符走。
结果为: ?这是因为刚刚开始时,pf指针首先指向首字符”a“,读完字符”a“后,pf指针就往下一个字符走,指向了字符”b“,读完”b“后,pf指针继续往下一个字符走,指向了字符”c“。 现在使用fgetc函数来读取数据,这个函数的作用是读取一个字符串
结果是: ?这个代码的意思是从pf指向的那个文件读取20个字符,存到数组arr中,我们知道文件只有4个字符,所以当文件不够要被读取字符数,程序就只会把文件中的内容读完,而不会报错。 下面我们进行”w“操作,并分别使用fputc、fputs函数 fputc函数
我们向test.txt文件进行写操作,如果我们对一个文件进行写操作,如果这个文件存在,且有内容,写操作会将文件的内容销毁,重新写入目前我们要写的内容。因为我们当前文件夹下没有创建这样的文件,所以程序自动帮我们创建,我们使用fputs函数,这个函数的作用是向文件写入一个字符,在这些代码中,我们分别写了”b“、”i“、”t“这几个字符 ? ?fputs函数
?fputs函数的作用是向文件输出一个字符串。因为这个文件在之前已经创建,且有字符”bit“,现在我们重新进行写操作,字符”bit“会被销毁,重新写入hello world、hello bit这两个字符串。 fprintf函数
?fprintf函数的作用是向pf指向的那个文件输出格式化字符(所谓的格式化就是类似于代码中"%d %lf"的格式),所以这个程序会向文件输出”100“和”3.140000“. fscanf函数
?fscanf函数的作用是从文件中读取格式化数据,存到内存中,由是一个代码只,文件中有”100“和”3.140000“这两个数据,所以这个程序会将这两个数据读到结构体变量s中. 最后两个函数使用方法与fgetc fputc fgets fputs函数类似,我就不示例了,同学们自己来试试吧!!!!! ? |
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/29 20:21:38- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |