写入文件
------写文件一共五步:------
第一步:包含头文件
第二步:创建流对象
第三步:指定方式打开文件
第四步:写内容
第五步:关闭文件
代码
注意二进制写文件时,字符串不要使用string,尽量使用C语言中的字符数组来表示。
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<fstream>
using namespace std;
/*------写文件一共五步:------*/
/*------第一步:包含头文件------*/
/*------第二步:创建流对象------*/
/*------第三步:指定方式打开文件------*/
/*------第四步:写内容------*/
/*------第五步:关闭文件------*/
class Person
{
public:
char name[200];
int age;
};
void test01()
{
Person s = { "小丽", 20 };
/*创建对象*/
ofstream ofs;
/*二进制打开文件*/
ofs.open("textBinary.txt", ios::out | ios::binary);
/*写入数据*/
ofs.write((const char *)&s, sizeof(Person));
/*关闭文件*/
ofs.close();
return;
}
int main()
{
test01();
return 0;
}
运行结果
由于是二进制写入,所以看不到完整的写入内容,下边会用二进制的形式,读取文件中的数据
读出文件
/------读文件一共五步:------/
第一步:包含头文件
第二步:创建流对象
第三步:打开文件并判断文件是否打开成功
第四步:读数据
第五步:关闭文件
代码
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<fstream>
using namespace std;
/*------读文件一共五步:------*/
/*------第一步:包含头文件------*/
/*------第二步:创建流对象------*/
/*------第三步:打开文件并判断文件是否打开成功------*/
/*------第四步:读数据------*/
/*------第五步:关闭文件------*/
class Person
{
public:
char name[200];
int age;
};
void test01()
{
Person s;
/*创建对象*/
ifstream ifs;
/*二进制打开文件*/
ifs.open("textBinary.txt", ios::in | ios::binary);
if(!(ifs.is_open()))
{
cout << "文件打开失败!" << endl;
return;
}
/*写入数据*/
ifs.read((char*)&s, sizeof(Person));
/*关闭文件*/
ifs.close();
cout << "姓名 :" << s.name << endl;
cout << "年龄 :" << s.age << endl;
return;
}
int main()
{
test01();
return 0;
}
运行结果
从运行结果来看,已经成功的将二进制文件中的数据,读到了程序的缓存中
文件打开模式标记(查表)
打开模式信息是从C语言中文网查阅的,大家可自行去查看。