请各位大侠帮小弟我解决一下下面程序输出到TXT中乱码的有关问题

请各位大侠帮我解决一下下面程序输出到TXT中乱码的问题
#include "Student.h"
#include<fstream>
#include<iostream>
#include<string>
using namespace std;
Student::Student(char num[],char nam[],char se[],char ag[],char maj[]) //构造函数
{
strcpy(number,num); 
strcpy(name,nam); 
strcpy(sex,se);
strcpy(age,ag);
strcpy(major,maj);
}
void Student::WriteRecored(Student stu) //写入文件
{
Stu stu_dent;
strcpy(stu_dent.Number,number); 
strcpy(stu_dent.Name,name);  
strcpy(stu_dent.Sex,sex);
strcpy(stu_dent.Age,age);
strcpy(stu_dent.Major,major);
  ofstream fout("database.text");
if(!fout)
{
cout<<"Cannot open output file\n,";
}
fout.write((char *)&stu_dent,sizeof(Stu));
fout.close();
}
Student::~Student(void)
{
}
int main()
{
Student student("95001","李勇","男","20","CS");
student.WriteRecored(student);
return 0;
}

------解决方案--------------------
你直接以结构体的方式写入文件,这样看起来就是乱码

除非你把每个成员用字符串表示,然后逐一写入