fread 读取一部分为乱码是怎么回事

#include
#include
using namespace std;
struct student
{
int id;
int number;
char name[40] ,date[20];
};
int main()
{
struct student L;
FILE *fp;
fp=fopen("in.txt","r");
fread(&L,sizeof(struct student),1,fp);
cout<<L.id<<L.number<<L.name<<L.date<<endl;
fclose(fp);

return 0;

}

文本in.txt

1 10006 zhengyongq 89-12-31

图片说明

使用fscanf

赞同楼上,在c++里似乎是二进制文件才能用这种方式读?