c++ 文件操作相关类:
ofstream: 写操作(输出)的文件类 (由ostream引申而来)
ifstream: 读操作(输入)的文件类(由istream引申而来)
fstream: 可同时读写操作的文件类 (由iostream引申而来)
文件打开
方式一:
ofstream file ("example.bin", ios::out | ios::app | ios::binary);
方式二:
ofstream file;
file.open ("example.bin", ios::out | ios::app | ios::binary);
文件打开属性:
ios::in | 为输入(读)而打开文件 |
ios::out | 为输出(写)而打开文件 |
ios::ate | 初始位置:文件尾 |
ios::app | 所有输出附加在文件末尾 |
ios::trunc | 如果文件已存在则先删除该文件 |
ios::binary | 二进制方式 |
文件打开默认属性:
类 | 参数的默认方式 |
---|---|
ofstream | ios::out | ios::trunc |
ifstream | ios::in |
fstream | ios::in | ios::out |
文件读写
方式一:
if (_fS_distance.bad() || _fS_distance.fail())
{
_fS_distance.close();
}
if (_fS_distance.is_open() != true)
{
_fS_distance.open("/root/distance", std::ios::in | std::ios::out);
}
_fS_distance.seekg(std::ios::beg);
_fS_distance << _distance;//写文件
_fS_distance.open("/root/distance", std::ios::in | std::ios::out);
if (_fS_distance.is_open() == false)
{
return -1;
}
if (_fS_distance.bad() || _fS_distance.fail())
{
_fS_distance.close();
return -11;
}
_fS_distance >> _distance;//文件值赋值_distance
方式二:
_fS_distance.write(data,dataLen);
_fS_distance.read()
文件seek
seekp:设置输出文件流的文件流指针位置
seekg:设置输入文件流的文件流指针位置
函数原型:
ostream& seekp( streampos pos );
ostream& seekp( streamoff off, ios::seek_dir dir );
istream& seekg( streampos pos );
istream& seekg( streamoff off, ios::seek_dir dir );
函数参数
pos:新的文件流指针位置值
off:需要偏移的值
dir:搜索的起始位置
dir参数用于对文件流指针的定位操作上,代表搜索的起始位置
在ios中定义的枚举类型:
ios::beg:文件流的起始位置
ios::cur:文件流的当前位置
ios::end:文件流的结束位置
文件关闭
_fS_distance.close();