c++的这个将一批数据以二进制形式存放在磁盘文件中的程序运行后打开生成的文件是乱码显示,哪里出错了?

#include
#include
using namespace std;
struct student
{
char name[20];
int num;
int age;
char sex;
};
int main()
{
student stud[3] = { "Li", 1001, 18, 'f', "Fang", 1002, 19, 'm', "Wang", 1004, 17, 'f' };
ofstream outfile("stud.dat", ios::binary);
if (!outfile)
{
cerr << "open error!" << endl;
abort();
}
for (int i = 0; i < 3; i++)
outfile.write((char*)&stud[i], sizeof(stud[i]));
outfile.close();
return 0;
}

二进制本身就是不可读的。这是正常现象,要看里面的内容,需要用ultraedit