问题描述

做C语言课设的时候想要通过读取文本的方式构建一个链表。

结构体

typedef struct grade {char subject[15];//科目char startTime[10];//学年,输入2022-09或2022-02double credit;//该学科的学分double usual;//平时成绩double midterm;//期中成绩double exam;//期末成绩double final;//最终成绩,即绩点char chongxiu;//是否为重修,是则Y,否则Nstruct grade* next;
}GradeNode,* ListGrade;

创建头节点:

void InitListGrade(ListGrade* head) {if ((*head = (ListGrade)malloc(sizeof(GradeNode))) == NULL) {printf("磁盘空间分配出错,创建信息表失败!\n");exit(-1);}(*head)->next = NULL;
}

使用带头节点的head开始构建链表:

struct grade* CreatList2(ListGrade head) {     int point = 0;ListGrade gradenode,p=head;FILE* fp;if ((fp = fopen("D://学生成绩数据.txt", "r")) == NULL) {printf("打开文件失败!请检查文件是否存在,若存在则请退出系统后再次登录。\n");exit(-1);}while (1) {gradenode = (ListGrade)malloc(sizeof(GradeNode));if (EOF == fscanf(fp, "%s %s %.1lf %.1lf %.1lf %.1lf %.1lf %c", gradenode->subject, gradenode->startTime, &gradenode->usual, &gradenode->midterm, &gradenode->exam, &gradenode->final, &gradenode->chongxiu))break;p->next = gradenode;gradenode->next = NULL;p = gradenode;}fclose(fp);return head;
}

要测试的数据:


原因分析:

遇到的问题1:

一开始没有注意.txt文件的编码格式,而记事本默认的是UTF-8,导致我读取不到正确的汉字字符。 >﹏<

遇到的问题二:

注意到上述问题后立马整改,原以为这就OK了,结果输出的是什么呀:

图一:vscode中的输出结果:

图二:VS2019的输出结果:
(代码在VS2019上写的,我会拿部分代码到vscode中测试一下,可能复制粘贴得不好吧,导致两个的输出结果不怎么一样)


这个问题搞得我一头雾水,改了很久也没结果。

使用C语言读取.txt文本数据构建链表时fscanf用法不当以及文件编码格式不对导致读取失败相关推荐

  1. ROS下使用C++读取txt文本数据并使用

    本代码功能:在ROS下使用C++读取txt文本数据并对数据进行处理 分析:ROS的核心是话题订阅与发布,但作为ROS小白的我经常被各种话题搞得云里雾里,故本博客将可以处理的数据存入txt文本,通过读取 ...

  2. python——读取txt文本数据并可视化

    最近用于对比结果,使用到了python的基本操作,之前也有了解但是与M相比难免有些区别 txt文本数据如下 0.9453125 0.9640625 0.671875 0.55625 0.475 0.9 ...

  3. 读取txt文本数据,用区域生长方法分割求平面

    代码如下.有几处特殊说明再代码中注明了. 读取的txt文本就是3D点云数据.形式如下: 0.1, 0.3, 0.9 1.0 , 1.3 ,  1.1 0.3, 0.4, 0.6 上面的数据计算由LSD ...

  4. python读取txt文本数据进行分词并生成词云图片

    python对数据分词,生成词云图片 小编在日常生活工作中学习到的点,在此记录一下,希望能够帮助有需要的小伙伴. 文章目录 python对数据分词,生成词云图片 前言 一.全部代码 选用的图片和效果图 ...

  5. C# 读取TXT文本数据 添加到数据库

    protected void Button1_Click(object sender, EventArgs e){//使用FileStream读取文件 FileStream fileStream = ...

  6. MATLAB读取写入文本数据最佳方法 | Best Method for Loading Saving Text Data Using MATLAB

    MATLAB读取文件有很多方法.然而笔者在过去进行数据处理中,由于函数太多,相互混杂,与C#,Python等语言相比,反而认为读取文本数据比较麻烦.C#和Python等高级语言中,对于大部分的文本数据 ...

  7. unity 实现文本选中_Unity中如何读取TXT文本内容

    在游戏开发过程中,我们是离不开需求的,而需求的事情是由策划来做的,那么我们和策划也是需要沟通交流的,那么是怎么交流的呢?策划不需要写代码,只需要思考一些游戏的内容,数据,玩法的实现,然后让我们按照策划 ...

  8. 将txt文本数据转换为json对象

    nodejs 将txt文本数据转换为json对象 1.准备 文件夹准备如下: 2.实现 a.txt中的内容: 小王,19 小李,20 小陈,21 work.js中的内容: // 导入fs.path c ...

  9. python写入、读取txt文本内容

    python写入.读取txt文本内容 一. 写入txt文本文件 # 保存数据 def writeData(datalist,savepath):for data in datalist:with op ...

最新文章

  1. linux利用* vim提权,linux 通过suid vim.basic文件提权
  2. ORU-10027: buffer overflow, limit of 10000 bytes
  3. 最近开始研究和关注的技术
  4. python3.8使用requests_python3.8.1 入门基础学习 之 【 requests 基础学习,python3爬虫必备基础】...
  5. ORACLE数据库基本操作命令
  6. C++开发中的pImpl方法
  7. jQuery选择器之层级选择器
  8. web.xml.jsf_看一下即将发布的JSF 2.3 Push支持
  9. Direct2D教程(五)复合图形
  10. 计算机算法设计与分析 数字三角形
  11. 构建之法第四章学习心得
  12. 电商购物后台管理系统总结
  13. paraview热流图(2):3D glyphs representation
  14. 原型图工具-Axure 8的安装、汉化与卸载(入门篇一)
  15. 【云原生-K8s】cka认证2022年12月最新考题及指南
  16. 线程插队--Join方法
  17. 利用U盘安装win2008r2系统的步骤
  18. lorawan 科普文
  19. java web查询某个时间段记录
  20. excel表显示为数字但是却无法进行数值运算

热门文章

  1. php域名绑定模块,迅睿CMS 模块域名绑定
  2. 万邦京东上传图片到JD API
  3. 做了那么多产品,哪个是你最走心的?
  4. 全球及中国立体停车场行业发展模式建议及运营可行性研究报告2021-2027年
  5. Zabbix外部邮件告警配置mailx
  6. 使用element UI时,table表格插入input输入框后里面的内容无法编辑问题
  7. “他者”德意志(一):“进窄门”的德国AI
  8. 计算机主机部件在机箱中的位置示意图,一种计算机主机机箱的制作方法
  9. 跑跑卡丁车点爆竹的超级技巧--想要棉花糖的来
  10. 互联网产品经理找工之旅