C++读写二进制文件

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;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值