C++读写二进制文件
#include "stdafx.h"
#include <iostream>
using namespace std;
#include <fstream>
//读写二进制文件
struct Student //里面不能写string
{
char name[30];
char sex;
float math;
float chinese;
};
int _tmain(int argc, _TCHAR* argv[])
{
fstream ofs("dest.txt", ios::out | ios::in | ios::trunc | ios::binary);
if (!ofs)
cout << "open error" << endl;
struct Student s[3] =
{
{ "zhangsan", 'x', 32, 54 },
{ "lisi", 'y', 300, 300 },
{ "wangwu", 'z', 20, 90 }
};
for (int i = 0; i < 3; i++)
{
ofs.write((char*)&s[i], sizeof(s[0]));
}
ofs.seekg(0, ios::beg); //调整指针
Student stu;
while (ofs.read((char*)&stu, sizeof(stu)), !ofs.eof())
{
cout << "name: " << stu.name << endl;
cout << "sex: " << stu.sex << endl;
cout << "math: " << stu.math << endl;
cout << "chinese: " << stu.chinese << endl;
}
ofs.close();
return 0;
}