| |
|
开发:
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语言】文件相关函数详解 |
3、使用fprintf和fscanf按照指定的格式写入/读取 5、使用sprintf和sscanf将格式化数据和字符串互相转换(文件无关) 一、文件和流1、程序文件包括源程序文件(后缀为.c) 目标文件(windows环境后缀为.obj) 可执行程序(windows环境 后缀为.exe) 2、数据文件文件的内容不一定是程序,而是程序运行时读写的数据,比如程序运行需要从中读取数据的文件, 或者输出内容的文件。 3、流任何一个C程序,运行起来就会默认打开3个流 1、FILE* stdin(标准输入流,键盘) 2、FILE* stdout(标准输出流,显示器) 3、FILE* stderr(标准错误流,显示器) 流可以理解为输入/输出缓冲区 二、文件组成每个被使用的文件都在内存中开辟了一个相应的文件信息区,用来存放文件的相关信息(如文件的名 字,文件状态及文件当前的位置等)。这些信息是保存在一个结构体变量中的。该结构体类型是由系统声明的,取名FILE FILE*就是文件指针类型,可以通过文件指针找到它指向的文件信息区(FILE类型的结构体),文件信息区用于维护一个文件(每个文件都是独立的文件信息区) 三、文件的打开和关闭1、文件的打开fopenfilename是文件名 mode是文件打开方式
2、文件关闭fclosestream是文件指针,文件使用完后一定要fclose关闭,并把文件指针置空。(用起来像free)
四、文件的顺序读写
1、使用fputc和fgetc写入/读取单个字符写入单个字符到文件 character:要写入的字符 stream:指向输出流 FILE 对象的指针。
读取文件中的单个字符 stream:指向输入流 FILE 对象的指针。
2、使用fputs和fgets写入/读取一串字符写入一串字符到文件 str:要写入的字符串的地址 stream:指向输出流 FILE 对象的指针。
读取文件中num个字符 str:读到的字符串放到str指向的空间里去 num:读取num-1个字符,并补上\0 stream:指向输入流 FILE 对象的指针。 读取成功:返回str的地址 读取失败或错误:返回空指针 监视发现,我们从文件中读取5个字符,实际只读了4个,最后一个补了\0 3、使用fprintf和fscanf按照指定的格式写入/读取stream:指向输出流 FILE 对象的指针。 后续参数使用方法与printf一样
stream:指向输入流 FILE 对象的指针。 后续参数使用方法和scanf一样
4、使用fwrite和fread按照二进制的方式写入/读取ptr:从ptr指向的当前位置开始写入 size:每个元素的大小 count:要写入的元素个数 stream:指向输出流 FILE 对象的指针。
fread参数和fwrite一样 ptr:从ptr指向的当前位置开始读取
5、使用sprintf和sscanf将格式化数据和字符串互相转换(文件无关)将格式化数据转换为字符串 str:将格式化数据放到目标地址 后续参数和使用方式和printf一样
将字符串转换为格式化数据 s:指向字符串的指针 后续参数和使用方式和scanf一样
五、文件的随机读写1、fseek(指定文件指针的位置)注意:每次文件读取完毕后,文件指针++ stream:指向标识流的 FILE 对象的指针 offset:指针偏移量 origin:指针起始点,如下图:
2、ftell(求文件指针与起始位置的偏移量)
3、rewind(让文件指针回到起始位置)六、文本文件和二进制文件的区别数据在内存中以二进制的形式存储,如果不加转换的输出到外存,就是二进制文件。 如果要求在外存上以ASCII码的形式存储,则需要在存储前转换。以ASCII字符的形式存储的文件就是文本文件。 字符一律以ASCII形式存储,数值型数据既可以用ASCII形式存储,也可以使用二进制形式存储。 七、文件读取结束的标志文本文件读取是否结束,fgetc判断返回值是否为 EOF . fgets判断返回值是否为 NULL 二进制文件的读取结束判断,判断返回值是否小于实际要读的个数。 例如: fread判断返回值是否小于还是等于实际要读的个数。 feof:判断文件是否读到末尾而结束,返回值为真,就是读到了文件结束 ferror:判断文件是否读取错误而结束,返回值为真,就是文件读取遇到了错误 八、文件缓冲区ANSIC 标准采用“缓冲文件系统”处理的数据文件的,所谓缓冲文件系统是指系统自动地在内存中为程序中每一个正在使用的文件开辟一块“文件缓冲区”。 从内存向磁盘输出数据会先送到内存中的缓冲区,装满缓冲区后才一起送到磁盘上。 如果从磁盘向计算机读入数据,则从磁盘文件中读取数据输入到内存缓冲区(充满缓冲区),然后再从缓冲区逐个地将数据送到程序数据区(程序变量等)。缓冲区的大小根据C编译系统决定的。 |
|
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图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/11 8:57:50- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |