文本文件的操作:文件以文本的ASCLL码的形式存储在计算机
包含头文件流<fstream>
写:ofstream
读:ifsream
可读可写:fstream
写文件操作步骤
包含头文件--->创建流对象----->打开文件---->写入数据----->关闭文件
文件打开的方式:
写文件示例!
cpp
#include<iostream>
#include<fstream>
using namespace std;
void test()
{
//创建对象流
ofstream ofs;
//指定打开方式
ofs.open("test.txt", ios::out);
//写入内容
ofs << "123123一二三123!" << endl;
ofs << "123123一二三123!" << endl;
ofs << "123123一二三123!" << endl;
ofs << "123123一二三123!" << endl;
//关闭文件
ofs.close();
}
int main()
{
test();
system("pause");
return 0;
}
读文件操作:5步
cpp
void test()
{
//创建对象流
ifstream ifs;
//指定打开方式
ifs.open("test.txt", ios::in);
//打开文件,判断是否打开成功
if (!ifs.is_open())
{
cout << "open erro" << endl;
return;
}
//读数据
char buffer[1024];
while (ifs >> buffer)
{
cout << buffer << endl;
}
/*
成员函数getline 获取一行
char buf[1024]={0};
将读到的数据放入buf
while(ifs.getline(buf,sizeof(buf))
{
cout<<buf<<endl;
}
*/
/*
string buf;
while(getline(ifs,buf))
*/
//关闭文件
ifs.close();
}
int main()
{
test();
system("pause");
return 0;
}
二进制文件的读写!
打开方式需要指定: iso::binary
利用流对象调用成员函数write
ostream& write(const chatr*buffer,int len);
字符指针 buffer指向内存中的一段储存空间,len为读取的字节数
cpp
class Person
{
public:
char name[64];
int m_age;
};
void test()
{
//创建对象流
ofstream ofs;
ofs.open("person,txt",ios::out|ios::binary);
//ofstream ofs("person,txt",ios::out|ios::binary);
//写文件
Person p = { "yyyyy",20 };
ofs.write((const char*)&p, sizeof(Person));
}
读取二进制文件
read函数
cpp
void test02()
{
ifstream ifs;
ifs.open("person,txt", ios::out | ios::binary);
if (!ifs.is_open())
{
cout << "open erro" << endl;
return;
}
Person p;
ifs.read((char*)&p, sizeof(Person));
cout << p.m_age << endl;
cout << p.name << endl;
}