谢长留 2019-12-07 18:27 采纳率: 66.7%
浏览 1474
已采纳

C语言fscanf文件输入时,文件中的文字到变量中变成乱码(?)

下面是用到的代码:
//初始化链表
Status InitList(LinkList &L)
{
L.head = (LNode*)malloc(sizeof(LNode));
if (!L.head)exit(OVERFLOW);
L.length = 0;
L.head->next = NULL;
return OK;
}
//尾插法创建单链表
Status CreateFromTail(LinkList &L)
{
LNode s,*r=L.head;
s = (LNode)malloc(sizeof(LNode));
fp = fopen("C:/Users/名字/source/student_info.txt", "r");
if (fp==NULL)
{
printf("打不开\n");
return OK;
}
while (fscanf(fp, "%d\t\t%s\t\t%s\t\t%s\t\t%s\n", &s->data.num, s->data.name, s->data.sex, s->data.dorm, s->data.tel) != EOF)
{
s->next = r->next;
r->next = s;
r = s;
++L.length;
s = (LNode*)malloc(sizeof(LNode));
}
fclose(fp);
return OK;
}
//打印文件
void PrintElem(LinkList L)
{
LNode* p;
p = L.head->next;
printf("当前的结点数为:%d\n", L.length);
while (p)
{
printf("%d\t\t%s\t\t%s\t\t%s\t\t%s\n", p->data.num, p->data.name, p->data.sex, p->data.dorm, p->data.tel);
p = p->next;
}
printf("\n");
}
int main()
{
int n;
LinkList L;
InitList(L);
CreateFromTail(L);

PrintElem(L);
}

图片说明
图片说明

比如前三个,汉字输出不一样了,但是后面字母是对的

  • 写回答

3条回答 默认 最新

  • ♚ ₯㎕。Smile°� 2021-01-03 12:12
    关注

    是不是创建txt编码格式错了,换成ANSI试试

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 已采纳回答 4月27日

悬赏问题

  • ¥50 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 latex怎么处理论文引理引用参考文献
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?