文件打开方式:用|符号,可以配合使用,如ios::binary | ios::out
ios::in 为读文件而打开文件
ios::out 为写文件而打开文件
ios::ate 初始位置:文件尾
ios::app 追加方式写文件 直接跑到文件尾,追加新内容
ios::trunc 如果文件存在,先删除,再创建
ios::binary 二进制方式
写文件步骤
#include <fstream>
ofstream ofs;//创建流对象
ofs.open("文件路径",打开方式);
ofs<<"写入的数据";//写数据 输出流对象
ofs.close();//关闭文件
读文件与写文件步骤类似,只不过改成用ifstream ofs创建流对象。
#include <fstream>
ifstream ifs;
ifs.open("文件路径",打开方式);
if(!ifs.is_open())//判断文件是否正常打开,打开了返回true,否则false
{ cout<<"文件打开失败"<<endl;
return;
}
读取文件
ifs.close();
四种读取方式
1.char buf[1024]={0};
while(ifs>>buff)//当数据全部读出后,ifs会返回假 按行读取
{
}
2.char buf[1024]={0};
while(ifs.getline(buf,sizeof(buf)) //依次按行读取
{ }
3.
string buf;
while(getline(ifs,buf))
{ }
4.
char c;
while((c=ifs.get())!=EOF) get函数每次读一个字符,EOF 文件尾的标志
{ }
二进制文件
写文件
主要调用write(const char*buff,int len)
如果写入struct/或者类等数据类型, 则在强制转换为const char*类型再传入参数即可
故,指针在语法上是可以进行类型转换的!
读文件
read(char *buff,int len); 前面是读出数据,存放的位置