1.写文件
C++中对文件操作需要包含头文件<fstream>
文本文件:文件以文本的ASCII码形式存储在计算机中。
二进制文件:文件以文本的二进制形式存储在计算机中。
写文件的步骤:
#include <fstream> //包含头文件
ofstream ofs; //创建流对象
ofs.open("文件路径(文件名)",打开方式); //打开文件
ofs<<"写入的数据"; //写入数据
ofs.close(); //关闭文件
文件打开方式
打开方式?? | 解释 | ios::in | 为读文件而打开文件 | ios::out | 为写文件而打开文件 | ios::ate | 初始位置:文件尾 | ios::app | 追加方式写文件 | ios::trunc | 如果文件存在,先删除,再创建 | ios::binary | 二进制方式 |
注意:文件打开方式可以配合使用,利用 | 操作符
例如:二进制方式写文件? ? ios::binary | ios::out
2.读文件
#include <fstream> //包含头文件
ifstream ifs; //创建流对象
ifs.open("文件路径(文件名)", 打开方式); //打开文件
if (!ifs.is_open()) //判断文件是否打开
{ }
//读取数据
ifs.close();` //关闭文件
读取文件数据的方式主要有以下4种
//第一种方法
char buf[1024] = { 0 };
while (ifs >> buf)
{
cout << buf << endl;
}
ifs.close();
//第二种方法
char buf[1024] = { 0 };
while (ifs.getline(buf, sizeof(buf)))
{
cout << buf << endl;
}
//第三种
string buf;
while (getline(ifs, buf))
{
cout << buf << endl;
}
//第四种,不推荐,单个字符读取
char c;
while ((c = ifs.get()) != EOF)
{
cout << c;
}
3.二进制写文件
二进制写文件主要利用流对象调用成员函数write
ostream& write(const char * buffer, int len);
//字符指针buffer指向内存中一段存储空间,len是读写的字节数
Person p = { };
ofs.write((const char *)&p, sizeof(p));
4.二进制读文件
istream& read(char *buffer, int len);
//字符指针buffer指向内存中一段存储空间,len是读写的字节数
Person p;
ifs.read((char *)&p, sizeof(p));
|