| |
|
开发:
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语言学习记录——文件操作 |
1什么是文件磁盘上的文件就是文件 文件分两种: 程序文件:
数据文件:
(此前数据的输入输出都是以终端为对象,键盘输入,显示屏输出。其实有时我们会把信息输出到磁盘上,当需要的时候再在磁盘上读取到内存中使用。) 2文件名文件要有一个唯一的文件标识,以便用户识别使用。 文件名包含3个部分:文件路径+文件名主干+文件后缀 为了方便文件标识常称为文件名。 3文件类型根据数据的组织形式,分为:
二进制文件:以二进制的形式存储,不加以转换 文本文件:转换后以ascll码形式存储? ?字符以ascll码形式存储。数值型则可以ascll码或二进制。 如:? 10000的存储-->ascll码:10000(5个字节);二进制形式:00 00 27 10(4个字节) 4文件缓冲区缓冲文件系统:系统自动在内存中为程序中每一个正在使用的文件开辟一块文件缓存区。 内存向磁盘输出数据和磁盘向内存的输入数据都会先送到缓冲区,直到装满或结束。缓存区大小由c编译系统决定。 5文件指针缓存文件系统中,关键概念是文件类型指针。即文件指针。 每个被使用的文件都在内存中开辟了一个相应的文件信息区,存放文件的相关信息(文件名,文件状态,即文件当前位置),保存在一个结构体变量中。结构体类型是有系统声明的取名FILE。
?可以使pf指向某个文件的文件信息区(结构体变量)==》通过文件指针变量能够找到与它相关联的文件。 6文件的打开与关闭(1)?
(2)?fopen()函数打开文件;fclose()来关闭文件。
? ?(3)打开方式(部分):
(4) fopen()::取文件名方式: 相对路径:
绝对路径
7文件的顺序读写?(1)
?输入到程序,输出到程序外。 ①
?②
③
④
(2) 标准输入:键盘输入,stdin FILE* 标准输出:屏幕输出,stdout FILE*
(3)
?(4)
8文件的随机读写(1) fseek 根据文件指针的位置和偏移量来定位文件指针 int fseek(FILE * stream,long int offset,int origin);
(2) ftell? 返回文件指针相对于起始位置的偏移量 long int ftell(FILE* stream); (3) rewind 让文件指针的位置回到文件的起始位置 void rewind(FILE* stream); 9文件结束的判定(1) 被错误使用的feof (在文件读取过程中,不能用feof函数的返回值直接用来判断文件是否结束。而是应用于当前文件读取结束的时候,判断是读取失败结束,还是遇到文件尾结束) (2) ①文本文件读取是否结束,判断返回值是否为EOF(fgetc),或者NULL(fgetc) ②二进制文件读取是否结束,判断返回值是否小于实际要读的个数(fread) 10其他(例)(1)
结果: 会在当前目录新建一个内容为h的text.txt的文件。(若text.txt换成..\\text.txt:结果则是上一个目录)。 (2) 对比:
第一列:针对标准输入输出流,格式化输入输出语句 第二列:针对所以输入输出流,格式化输入输出语句 第三列:sscanf是从字符串中读取格式化数据;sprintf是把格式化数据输出(存储)字符串
11?最后慢慢补充吧,多实践,(员工簿?) |
|
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年11日历 | -2024/11/24 9:24:20- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |