使用C语言读取.txt文本数据构建链表时fscanf用法不当以及文件编码格式不对导致读取失败
问题描述
做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用法不当以及文件编码格式不对导致读取失败相关推荐
- ROS下使用C++读取txt文本数据并使用
本代码功能:在ROS下使用C++读取txt文本数据并对数据进行处理 分析:ROS的核心是话题订阅与发布,但作为ROS小白的我经常被各种话题搞得云里雾里,故本博客将可以处理的数据存入txt文本,通过读取 ...
- python——读取txt文本数据并可视化
最近用于对比结果,使用到了python的基本操作,之前也有了解但是与M相比难免有些区别 txt文本数据如下 0.9453125 0.9640625 0.671875 0.55625 0.475 0.9 ...
- 读取txt文本数据,用区域生长方法分割求平面
代码如下.有几处特殊说明再代码中注明了. 读取的txt文本就是3D点云数据.形式如下: 0.1, 0.3, 0.9 1.0 , 1.3 , 1.1 0.3, 0.4, 0.6 上面的数据计算由LSD ...
- python读取txt文本数据进行分词并生成词云图片
python对数据分词,生成词云图片 小编在日常生活工作中学习到的点,在此记录一下,希望能够帮助有需要的小伙伴. 文章目录 python对数据分词,生成词云图片 前言 一.全部代码 选用的图片和效果图 ...
- C# 读取TXT文本数据 添加到数据库
protected void Button1_Click(object sender, EventArgs e){//使用FileStream读取文件 FileStream fileStream = ...
- MATLAB读取写入文本数据最佳方法 | Best Method for Loading Saving Text Data Using MATLAB
MATLAB读取文件有很多方法.然而笔者在过去进行数据处理中,由于函数太多,相互混杂,与C#,Python等语言相比,反而认为读取文本数据比较麻烦.C#和Python等高级语言中,对于大部分的文本数据 ...
- unity 实现文本选中_Unity中如何读取TXT文本内容
在游戏开发过程中,我们是离不开需求的,而需求的事情是由策划来做的,那么我们和策划也是需要沟通交流的,那么是怎么交流的呢?策划不需要写代码,只需要思考一些游戏的内容,数据,玩法的实现,然后让我们按照策划 ...
- 将txt文本数据转换为json对象
nodejs 将txt文本数据转换为json对象 1.准备 文件夹准备如下: 2.实现 a.txt中的内容: 小王,19 小李,20 小陈,21 work.js中的内容: // 导入fs.path c ...
- python写入、读取txt文本内容
python写入.读取txt文本内容 一. 写入txt文本文件 # 保存数据 def writeData(datalist,savepath):for data in datalist:with op ...
最新文章
- linux利用* vim提权,linux 通过suid vim.basic文件提权
- ORU-10027: buffer overflow, limit of 10000 bytes
- 最近开始研究和关注的技术
- python3.8使用requests_python3.8.1 入门基础学习 之 【 requests 基础学习,python3爬虫必备基础】...
- ORACLE数据库基本操作命令
- C++开发中的pImpl方法
- jQuery选择器之层级选择器
- web.xml.jsf_看一下即将发布的JSF 2.3 Push支持
- Direct2D教程(五)复合图形
- 计算机算法设计与分析 数字三角形
- 构建之法第四章学习心得
- 电商购物后台管理系统总结
- paraview热流图(2):3D glyphs representation
- 原型图工具-Axure 8的安装、汉化与卸载(入门篇一)
- 【云原生-K8s】cka认证2022年12月最新考题及指南
- 线程插队--Join方法
- 利用U盘安装win2008r2系统的步骤
- lorawan 科普文
- java web查询某个时间段记录
- excel表显示为数字但是却无法进行数值运算
热门文章
- php域名绑定模块,迅睿CMS 模块域名绑定
- 万邦京东上传图片到JD API
- 做了那么多产品,哪个是你最走心的?
- 全球及中国立体停车场行业发展模式建议及运营可行性研究报告2021-2027年
- Zabbix外部邮件告警配置mailx
- 使用element UI时,table表格插入input输入框后里面的内容无法编辑问题
- “他者”德意志(一):“进窄门”的德国AI
- 计算机主机部件在机箱中的位置示意图,一种计算机主机机箱的制作方法
- 跑跑卡丁车点爆竹的超级技巧--想要棉花糖的来
- 互联网产品经理找工之旅