->
文件操作
头文件:<fstream>
文本文件:ASCII码形式存储
二进制文件:二进制形式存储
操作文件三大类:
ofstream:写
ifstream:读
fstream:读写
写文件步骤:
1.包含头文件
2.创建流对象 ofstream ofs;
3.打开文件 ofs.open(path,打开方式)
4.写数据 ofs<<"data";
5.关闭文件 ofs.close;
文件打开方式:
1. ios::in 为读文件而打开文件
2. ios::out 为写文件而打开文件
3. ios::ate 初始位置,文件尾
4. ios::app 追加方式
5. ios::trunc 如果文件存在则先删除,再创建
6. ios::binary 二进制方式
文件打开方式可以配合使用,利用 | 操作符
例如: ios::binary|ios::out 二进制写文件
读文件步骤:
1.包含头文件
2.创建流对象 ifstream ifs;
3.打开文件 ifs.open(path,打开方式)
4.读数据 四种方式
5.关闭文件 ifs.close;
读数据的方式:
1. char buf[1024]={0};
while(ifs>>buf)
{
cout<<buf<<endl; //每次读一个词
}
2. char buf[1024]={0};
while(ifs.getline(buf,sizeof(buf)))
{
cout<<buf<<endl; //每次读一行
}
3. string buf;
while(getline(ifs,buf))
{
cout<<buf<<endl; //也是一行一行读
}
4. 不太推荐用,一个字符一个字符读
char c;
while((c=ifs.get())!=EOF)
{
cout<<c;
}
->
二进制文件
打开方式: ios::binary
写:
ofstream ofs;
ofs.open("Person.txt",ios::out|ios::binary);
Person p={"张三",18};
ofs.write((const char*)&p,sizeof(Person)); //要把数据的地址强转为const char *
ofs.close();
读:
ifstream ifs;
ifs.open("Person.txt",ios::in|ios::binary);
if ((!ifs.is_open()))
{
cout<<"failed."<<endl;
return;
}
else
{
Person p;
ifs.read((char *)&p,sizeof(Person));
cout<<"name: "<<p.m_name<<",age: "<<p.m_age<<endl;
}
C++ Study Notes 4
最新推荐文章于 2024-08-23 21:39:27 发布