网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
ofstream myFile;
myFile.open("filename");
缓冲区
- 标准库 提供缓冲是为了减少对read和write的调用(能更高效地处理输入和输出)
- 用作中介的内存块,将信息从设备传输到程序或从程序传输给设备的 临时存储工具
2.1常见的文件操作
1、文件打开
只有使用文件流与磁盘上的文件进行连接后才能对磁盘上的文件进行操作,这个连接过程称为打开文件。
打开文件的方式有两种:
- 在创建文件流时候利用构造函数打开文件:
<文件流类> <文件流对象> (<文件名及路径>,<打开方式>)
其中文件流类根据需求可以有以下选择:ifstream(输入流)、ofstream(输出流)、fstream(输入输出流),打开方式有以下选择:
- ios::in - 以输入方式打开文件,文件不存在,则返回错误
- ios::out - 以输出方式打开文件,文件不存在,则创建文件
- ios::app - 以追加方式打开文件,可写入,文件不存在,则创建文件
- ios::ate -打开已存在的文件,文件指针移动到文件尾,可读可写
- ios::binary-以二进制方式打开文件
- ios::trunc-打开文件进行写操作,若文件存在,则清空数据
- ios::nocreate-打开已存在的文件,若文件不存在,则返回错误
- ios::noreplace-创建新文件,如果文件存在,创建失败
- 利用open函数打开文件
<文件流对象>.open (<文件名及路径>,<打开方式>)
文件打开失败,则文件流对象为0值,我们可以依据这个判断函数的执行情况
若在文件流创建或open函数调用时,未指明它的打开方式,则会使用默认打开方式,默认值如下:
std::ofstream – std::ios::out|std::ios::trunk
std::ifstream – std::ios::in
std::ofstream – 无默认值
2、文件流对象的成员函数
close(); 刷新未保存的数据后关闭文件
flush(); 刷新文件缓冲区
put(char c):将一个文件写入文件中
rdbuf():返回与流相连接的文件缓冲区对象
tellp():获取输出文件指针位置
seekp( streamoff off, ios::seek_dir dir)或seekp( streamoff off);设置输出文件流偏移
tellg():获取输入文件指针位置
seekg( streamoff off, ios::seek_dir dir )或seekg( streamoff off);设置输入文件流偏移
rdstate():获取文件状态
eof():判断文件指针是否到达文件尾
fail():上次读写出错,但文件仍可用
bad():文件不在可用
good():文件一切正常
clear():清楚文件状态
以下是fstream类特有的成员函数
getline(str,n,‘\n’):从文件中读取字符,直到读取到‘\n’或读取n-1个字符后结束
peek():查找下一个字符,但不从文件中取出
put©:将字符c写入到文件中
ignore(n):跳过n个字符,参数为0时,读取下一个字符
另外文件流也重载了"<<"及“>>”操作符,在文本文件读取和写入时,也可以使用这两个运算符。果想要读写是的二进制文件,则不能再使用上面的函数了,因为二进制文件中包含大量的0,与我们的‘\0’的ASCII的值是一样的,所以读写二进制文件只能使用read和write函数:
istream& read(char* buffer,int len);
ostream& write(char* buffer,int len);
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新