文件操作
程序运行时产生的数据均为临时数据,一旦结束,就会被释放
可通过文件使得数据持久存储
-
头文件:
-
文件类型:
- 文本文件:以文本的ASCII码形式存放在计算机中
- 二进制文件:以文本的二进制形式存放在计算机中,用户一般不可读
-
三大操作:
- ofstream:写操作
- ifstream:读操作
- fstream:读写操作
1. 文本文件
1.1 写文件
-
步骤
- 包含头文件
#include<fstream> - 创建流对象
ofstream ofs; - 打开文件
ofs.open("filepath",openways); - 写数据
ofs<<"writtentext"; - 关闭文件
ofs.close();
- 包含头文件
-
文件打开方式
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pZVMsHvP-1629103350673)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20210816161101110.png)]
注意:文件打开方式可配合使用,利用 | 操作符
-
注意:文件默认保存在项目所在路径
1.2 读文件
-
步骤
-
包含头文件
#include<fstream> -
创建流对象
ifstream ifs; -
打开文件并判断是否打开成功
ifs.open("filepath",openways);if(!ifs.is_open()){}//该语句来判断是否打开成功 -
读数据
四种方式读取
//第一种方式 char buf[1024]={0}; while(ifs>>buf){//一行一行读 cou<<buf<<endl; } //第二种方式 char buf[1024]={0}; while(ifs.getline(buf,sizeof(buf))){//一行一行读 cou<<buf<<endl; } //第三种方式 string buf; while(getline(ifs,buf)){//一行一行读 cou<<buf<<endl; } //第二种方式 char c; while((c=ifs.get()) != EOF){//EOF:end of file也可用 ~(c=ifs.get()) cou<<buf<<endl; } -
关闭文件
ifs.close();
-
2. 二进制文件
以二进制方式对文件进行读写操作时,打开方式要包含ios::binary
2.1 写文件
二进制写文件主要利用流对象调用成员函数write
-
格式
ostream& write(const char * buffer,int len); -
参考解释:字符数组buffer指向内存中一段存储空间,len指读写的字节数
-
提示:尽量不要用c++的string,可能会出现一些问题,可用字符数组代替
2.1 读文件
二进制写文件主要利用流对象调用成员函数read
-
格式
ostream& read(char * buffer,int len); -
参考解释:字符数组buffer指向内存中一段存储空间,len指读写的字节数
-
提示:尽量不要用c++的string,可能会出现一些问题,可用字符数组代替
本文详细介绍了C++中的文件操作,包括文本文件和二进制文件的读写。针对文本文件,讲解了ofstream用于写操作,ifstream用于读操作,fstream实现读写操作,并给出了具体步骤和不同方式的读取示例。而对于二进制文件,强调了使用ios::binary打开方式,并展示了write和read函数的用法。文章旨在帮助开发者理解如何在C++中持久存储数据。

被折叠的 条评论
为什么被折叠?



