2 文件操作
C++中对文件操作需要保护头文件<fstream>
文件类型分为两种:
- 文本文件 文件以文本的ASCII码形式存储在计算机中(明码)
- 二进制文件 文件以文本的二进制形式存储在计算机中(暗码)
操作文件的三大类:
- ofstream:写文件
- ifstream:读文件
- fstream:读写文件
2.1 文本文件
2.1.1 写文件
写文件的步骤如下:
-
包含头文件
#include<fstream>
-
创建流对象
ofstream ofs;
-
打开文件
ofs.open("文件路径", 打开方式);
文件的打开方式:
-
写数据
ofs<<"写入的数据...";
-
关闭文件
ofs.close();
总结:
- 文件操作必须包含头文件fstream
- 读文件可以利用ofstream,或者fstream类
- 打开文件时候需要指定操作文件的路径,以及打开方式
- 利用<<运算符可以向文件中写数据
- 操作完毕,要关闭文件
2.1.2 读文件
读文件与写文件步骤基本相似,但是读取的方式相对较多
写文件的步骤如下:
-
包含头文件
#include<fstream>
-
创建流对象
ifstream ifs;
-
打开文件并判断文件是否打开成功
ifs.open("文件路径", 打开方式);
ifs.is_open() //判断文件是否打开成功,返回值为bool类型
文件的打开方式:
-
读取数据(三种读取方式)
1、使用>>运算符
-
char buf[1024] = { 0 }; //创建存储文件内容的空字符数组 ifs >> buf; //>>运算符将文件中的字符读取到buf中
2、使用getline方法
-
char buf[1024] = { 0 }; //创建存储文件内容的字符数组 ifs.getline(buf, sizeof(buf)); //第一个参数为存储读取到字符容器的地址,第二个是容器的长度
3、使用stirng中的getline方法(全局函数)
-
string buf; //接收读取到的字符串 getline(ifs, buf); //第一个参数为流对象,第二个参数为字符串
-
-
关闭文件
ifs.close();
总结:
- 读文件可以利用ifstream,或者fstream类
- 读文件可以利用ifstream,或者fstream类
利用is_ open函数可以判断文件是否打开成功
close关闭文件 - close关闭文件
2.2 二进制文件
以二进制的方式对文件进行读写操作
打开方式要指定为 ios::binary
2.2.1 写文件
二进制方式写文件主要利用流对象调用成员函数write
函数原型:ostream& write(const char * buffer, int len)
参数解释:第一个参数是字符串指针指向内存中的一段存储空间,len是读写的字节数
2.2.2 读文件
二进制方式写文件主要利用流对象调用成员函数read
函数原型:istream& read(char * buffer, int len)
参数解释:第一个参数是字符串指针指向内存中的一段存储空间,len是读写的字节数
2.2.2 读文件
二进制方式写文件主要利用流对象调用成员函数read
函数原型:istream& read(char * buffer, int len)
参数解释:第一个参数是字符串指针指向内存中的一段存储空间,len是读写的字节数