文件读出出现乱码,请各位帮我看看怎么回事
这是打印到磁盘文件的代码:
Status Writelist(Link L)
{
if (L.head->next == NULL)
{
cout << "错误,无法存储数据!" << endl;
return error;
}
FILE* fp;
errno_t err;
LinkList p = L.head->next;
if ((err = fopen_s(&fp, "test", "w")) != 0)
{
printf("error,cannot open this file\n");
return error;
exit(1);
}
while (p != NULL)
{
fprintf(fp, "姓名:%s", p->data.name);
fprintf(fp, " 年龄:%s", p->data.age);
fprintf(fp, " 学号:%s", p->data.num);
fprintf(fp, " 性别:%s", p->data.sex);
fprintf(fp, " 籍贯:%s\n", p->data.place);
p = p->next;
}
cout << "数据存储成功!" << endl;
fclose(fp);
return OK;
}//存储数据
这是从磁盘文件读出并打印到调试窗口的代码
Status Readlist()
{
LinkList p;
p = new LNode[1];
FILE* fp;
errno_t err;
if ((err = fopen_s(&fp, "test", "r")) != 0)
{
printf("error,cannot open this file\n");
return error;
exit(1);
}
rewind(fp);
if (!feof(fp))
{
while (!feof(fp))
{
/LinkList current = (LinkList)malloc(sizeof(LNode));
if (current == NULL)
{
printf("No memory!");
exit(0);
}
current->next = NULL;/
fscanf_s(fp, "%s(还有4个%s未写出,因为审核过不了,只能这样)", p->data.name,10, p->data.age,10 ,p->data.num,15, p->data.sex,10, p->data.place,20);/fread(&(current->data), sizeof(Person), 1, fp);/
fscanf_s(fp, "\n");
cout << p->data.name << endl;
cout << p->data.age << endl;
cout << p->data.num << endl;
cout << p->data.sex << endl;
cout << p->data.place << endl;
/*if (feof(fp))
{
free(current);
break;
}*/
}
fclose(fp);
cout << "历史数据读取成功!" << endl;
return OK;
}
else
{
cout << "无历史数据,读取失败!" << endl;
return error;
}
}//从文件读取数据
img
img
img
我想要达到的结果
正常从磁盘文件读出