C++文件操作
写操作的五个步骤:
- 包含 fstream 头文件
- 创建流对象
- 打开文件
- 写文件
- 关闭文件
读取操作的五个步骤:
- 包含 fstream 头文件
- 创建流对象
- 打开文件且判断文件是否打开成功
- 读取文件
- 关闭文件
文本文件的写操作和读操作
写操作:
-
可以用ofstream 或者 fstream 类实例化一个流对象用来写操作
-
可以在实例化流对象的同时打开文件
格式:ofstream 对象(目录,打开模式) -
也可以用流对象的方法打开
格式:流对象.open(目录,打开模式) -
写文件格式:流对象<<输出的内容
-
关闭文件格式:流对象.close()
读操作:
-
可以用 ifstream或者 fstream 类实例化一个流对象来进行读操作
-
可以在实例化对象同时打开文件
格式: ifstream 对象(目录,打开模式) -
也可以用流对象的方式打开
格式:流对象.open(目录,打开模式) -
判断文件是否打开可以使用流对象的方法 is_open()来判断文件是否成功打开(成功返回true,失败返回false)
-
读取文件(四种方法):
//第一种
//创建一个字符串数组
//用 流对象>>数组名 的方法来进行读取操作(读取到空白字符会换行)
char buf[1024] = { 0 };
while (ifs >> buf)
{
cout << buf << endl;
}
//第二种使用流对象的方法getline()来进行读取
//getline()格式:getline(存储变量,最大读取字符数)
//getline()每次读取一行
//创建一个字符数组用来存储读取的数据
char str[1024];
//创建一个循环进行读取
while(ifs.getline(str,sizeof(str))//将读取的数据存储到str
{
cout << str << endl;
}
//使用全局方法getline(), 此方法需要包含头文件string
//getline()格式:getline(流对象,存储变量)
//此方法需要使用string数据类型来存储数据
//创建string变量
string str;
while(getline(ifs,str);//ifs是流对象
{
cout << str << endl;
}
//使用流对象方法get()来进行读取数据
//该方法每次只能读取一个字符
//创建一个char类型变量来存储读取的数据
char str;
while((str = ifs.get())!=EOF)//到末尾停止
{
cout << str ;//改方法读到行尾会换行,不用自己换行
}
- 关闭文件:流对象.close()
二进制文件的写操作与读操作
写操作:
各个步骤与文本文件相同
但是写文件的时候需要使用流对象方法write()
write格式:
write((const char *)变量地址,输出流的大小)
读操作:
除了读取文件,其余与文本文件的读操作相同
二进制读取需要使用流对象方法read()
read()格式:
read((char *)&变量地址,输入流大小)