fread读取结构体有关问题,已经注意内存对齐有关问题了

fread读取结构体问题,已经注意内存对齐问题了啊
#include <stdlib.h>
#include <iostream>
#pragma pack(1)
using namespace std;

typedef struct student
{
char name;
int num;
}student;

int main()
{
FILE *fp;
student stu;
if((fp=fopen("1.txt","rb"))==NULL)
cout<<"error!"<<endl;
fread(&stu,sizeof(stu),1,fp);
char name;
int num;
name=stu.name;
num=stu.num;
cout<<"name:"<<name<<endl;
cout<<"number:"<<num<<endl;

fclose(fp);

return 0;
}

已经注意了内存对齐问题了,为什么总是只能输出name值,而num总是随机数呢?
读取文件

------解决方案--------------------
你写入的时候是手fread读取结构体有关问题,已经注意内存对齐有关问题了动输入的吧,不是在程序里面输入,所以就读不出来;
------解决方案--------------------
1.txt的数据是如何写的。

引用:
#include <stdlib.h>
#include <iostream>
#pragma pack(1)
using namespace std;

typedef struct student
{
char name;
int num;
}student;

int main()
{
FILE *fp;
student stu;
if((fp=fopen("1.txt","rb"))==NULL)
cout<<"error!"<<endl;
fread(&stu,sizeof(stu),1,fp);
char name;
int num;
name=stu.name;
num=stu.num;
cout<<"name:"<<name<<endl;
cout<<"number:"<<num<<endl;

fclose(fp);

return 0;
}

已经注意了内存对齐问题了,为什么总是只能输出name值,而num总是随机数呢?