64,654
社区成员
发帖
与我相关
我的任务
分享
//---------------------------------------------------------------------------
#pragma hdrstop
#include <malloc.h>
#include <stdio.h>
#include <iostream.h>
#include <fstream.h>
using namespace std;
#define NULL 0
#define LEN sizeof(struct Employe)
//---------------------------------------------------------------------------
#pragma argsused
struct Employe
{
int mi_number;
char mc_name[20];
int mi_weight;
int mi_height;
char mc_birth[20];
char mc_address[50];
struct Employe *Next;
};
struct Employe *head, *end, *p;
int main(int argc, char* argv[])
{
char mc_txtname[30],mc_binname[30];
fstream txtfile,binfile;
head=end=p=(struct Employe*)malloc(LEN);
cout<<endl;
cout<<" 输入员工编号为0结束输入,每项信息都必须输入内容。"<<endl;
cout<<endl<<endl;
cout<<"请输入文本文件路径及后缀名:"; //如 F:\\txtname.txt
cin>>mc_txtname;
txtfile.open(mc_txtname,ios::out|ios::trunc);
cout<<"请输入二进制文件路径及后缀名:"; //如 F:\\binname.dat
cin>>mc_binname;
binfile.open(mc_binname,ios::binary|ios::out|ios::trunc);
do
{
cout<<endl<<"编号:";
cin>>p->mi_number;
if((p->mi_number)==0) {end->Next=NULL; break;}
cout<<"姓名:";
cin>>p->mc_name;
cout<<"体重:";
cin>>p->mi_weight;
cout<<"身高:";
cin>>p->mi_height;
cout<<"生日:";
cin>>p->mc_birth;
cout<<"地址:";
cin>>p->mc_address;
cout<<endl;
txtfile<<"编号:"<<p->mi_number<<endl; //文本格式
txtfile<<"姓名:"<<p->mc_name<<endl;
txtfile<<"体重:"<<p->mi_weight<<endl;
txtfile<<"身高:"<<p->mi_height<<endl;
txtfile<<"生日:"<<p->mc_birth<<endl;
txtfile<<"地址: "<<p->mc_address<<endl<<endl;
binfile.write("编号:",8*sizeof(char)); //二進制格式
binfile.write((char *)&(p->mi_number),sizeof(int));
binfile.write("姓名:",8*sizeof(char));
binfile.write(p->mc_name,20*sizeof(char));
binfile.write("体重:",8*sizeof(char));
binfile.write((char *)&(p->mi_weight),sizeof(int));
binfile.write("身高:",8*sizeof(char));
binfile.write((char *)&(p->mi_height),sizeof(int));
binfile.write("生日:",8*sizeof(char));
binfile.write(p->mc_birth,20*sizeof(char));
binfile.write("地址:",8*sizeof(char));
binfile.write(p->mc_address,50*sizeof(char));
end->Next=p;
p=(struct Employe *)malloc(LEN);
}while(1);
system("pause");
}
只要把这一行改一下就可以读了
binfile.open(mc_binname,ios::binary|ios::out|ios::trunc);//out改为in,然后来读文件