2024-2025-1 20241417 《计算机基础与程序设计》第十四周学习总结

news/2024/12/28 11:37:19/文章来源:https://www.cnblogs.com/lry666666/p/18637334

2024-2025-1 20241417 《计算机基础与程序设计》第十四周学习总结

作业信息

这个作业属于哪个课程 <班级的链接>(如2024-2025-1-计算机基础与程序设计)
这个作业要求在哪里 <作业要求的链接>2024-2025-1计算机基础与程序设计第十四周作业
这个作业的目标 <《C语言程序设计》第13-14章并完成云班课测试>
作业正文 https://www.cnblogs.com/lry666666/p/18637334

教材学习内容总结

  • 文件的基本概念
    • 文件的定义与分类:文件是存储在外部介质上数据的集合,可分为文本文件(以 ASCII 码形式存储,每个字符占一个字节,便于人阅读和编辑)和二进制文件(数据按其在内存中的存储形式原样存储,占用空间可能更小,读写效率更高,适合存储数值型数据等)。
  • 文件指针
    • 定义:FILE是一个结构体类型,文件指针是指向FILE结构体的指针变量,用于标识文件在内存中的位置和状态等信息,通过文件指针来操作文件。例如FILE *fp;声明了一个文件指针fp
  • 文件的打开与关闭
    • 打开文件:使用fopen函数打开文件,其一般形式为fp = fopen("文件名", "文件使用方式");,其中文件使用方式包括"r"(只读)、"w"(只写,若文件不存在则创建,若存在则清空内容)、"a"(追加写,在文件末尾添加数据)、"rb""wb""ab"(二进制文件的相应读写方式)等。如果打开文件成功,fopen函数返回文件指针,否则返回NULL
    • 关闭文件:使用fclose函数关闭文件,fclose(fp);,关闭文件后,文件指针与该文件脱离联系,同时系统会将缓冲区中尚未写入文件的数据写入磁盘,并释放文件指针占用的内存空间。关闭文件操作很重要,可避免数据丢失和资源浪费。
  • 文件的读写操作
    • 字符读写函数
      • fgetc:从指定文件中读取一个字符,如ch = fgetc(fp);,读取成功返回读取到的字符,若读到文件末尾或出错则返回EOF-1)。
      • fputc:向指定文件写入一个字符,如fputc(ch, fp);,写入成功返回写入的字符,出错则返回EOF
    • 字符串读写函数
      • fgets:从文件中读取一个字符串,fgets(str, n, fp);n为要读取的字符个数(包括'\0'),会读取到换行符'\n'(如果文件中有),并将其作为字符串的一部分存储,若成功则返回字符串首地址,若读到文件末尾或出错则返回NULL
      • fputs:将字符串写入文件,fputs(str, fp);,写入字符串str(不包括'\0')到文件中,成功返回非负整数,出错返回EOF
    • 格式化读写函数
      • fscanf:从文件按指定格式读取数据,如fscanf(fp, "%d%s", &num, str);,按照格式字符串从文件中读取数据并存储到相应变量中,返回成功读取的数据项数,若遇到文件末尾或出错则返回EOF
      • fprintf:将数据按指定格式写入文件,fprintf(fp, "%d %s", num, str);,将数据按格式写入文件,返回写入的字符数。
    • 数据块读写函数
      • fread:用于从文件读取数据块到内存,fread(buffer, size, count, fp);buffer是指向存储数据的内存区域的指针,size是每个数据块的字节数,count是要读取的数据块数量,成功则返回实际读取的数据块数量,若遇到文件末尾或出错则返回小于count的值。
      • fwrite:将内存中的数据块写入文件,fwrite(buffer, size, count, fp);,参数含义与fread类似,成功返回实际写入的数据块数量。
  • 文件的定位与随机读写
    • 文件头定位rewind函数将文件指针重新定位到文件开头,rewind(fp);
    • 文件指针移动fseek函数可将文件指针移动到指定位置,fseek(fp, offset, origin);offset是偏移量(字节数),origin指定起始位置(SEEK_SET表示文件开头,SEEK_CUR表示当前位置,SEEK_END表示文件末尾)。例如fseek(fp, 10L, SEEK_SET);将文件指针从文件开头向后移动 10 个字节。
    • 获取当前位置ftell函数用于获取文件指针当前相对于文件开头的偏移字节数,long pos = ftell(fp);,返回值为文件指针当前位置,如果出错则返回-1L

教材学习中的问题和解决过程(先问 AI)

  • 问题 1:不理解文件指针的移动规则
  • 问题 1 解决方案:重新复习 fseek 函数的参数含义。SEEK_SET 表示从文件开头开始计算偏移量,SEEK_CUR 表示从当前文件指针位置计算偏移量,SEEK_END 表示从文件末尾开始计算偏移量(偏移量为负数时向前移动指针,正数时向后移动指针)
  • 问题 2:混淆文本文件和二进制文件的读写方式
  • 问题 2 解决方案:深入理解文本文件和二进制文件的本质区别。文本文件以字符形式存储,每个字符占用一个字节,并且遵循特定的字符编码(如 ASCII、UTF-8 等),适合存储人类可读的文本数据;二进制文件则是按照数据在内存中的存储形式原样存储,没有特定的字符编码限制,更适合存储数值型数据、图像、音频等非文本数据
  • 问题 3:忘记关闭文件导致资源未释放
  • 问题 3 解决方案:养成良好的编程习惯,在每次打开文件后,立即在适当的位置(通常是文件操作完成后)添加 fclose 函数来关闭文件。可以使用代码注释来提醒自己关闭文件的重要性

基于AI的学习

代码调试中的问题和解决过程

  • 问题1:定义字符数组时忘记给'\0'分配位置,导致编译错误
  • 问题1解决方案:回顾并检查课本中字符数组定义
  • 问题2:使用有关字符串的函数时,忘记添加string的头文件
  • 问题2解决方案:提前加好

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 200/200 2/2 20/20
第二周 300/500 0/2 18/38
第三周 500/1000 1/3 22/60
第四周 300/1300 1/4 30/90
第五周 300/1600 1/5 30/120
第六周 300/1900 1/6 30/150
第七周 300/2200 1/7 30/180
第八周 300/2500 1/8 30/210
第九周 300/2800 1/9 30/240
第十周 300/3100 1/10 30/270
第十一周 300/3400 1/11 30/300
第十二周 300/3700 1/12 30/330
第十三周 300/4000 1/13 30/360
第十四周 300/4300 1/14 30/390

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/860332.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Windows】 国内安装Scoop包管理器(镜像加速)

由于国内github访问不通畅,且多数开源软件托管在github,导致scoop体验极差,甚至安装Scoop这一步都无法进行。国内有位作者将scoop主程序托管在gitee,增加分流逻辑处理安装与更新所涉及的资源。 链接: https://gitee.com/scoop-installer/scoop 安装scoop主程序 1.1 初次安…

07 _ Load Average:加了CPU Cgroup限制,为什么我的容器还是很慢?

07 _ Load Average:加了CPU Cgroup限制,为什么我的容器还是很慢?你好,我是程远。今天我想聊一聊平均负载(Load Average)的话题。 在上一讲中,我们提到过CPU Cgroup可以限制进程的CPU资源使用,但是CPU Cgroup对容器的资源限制是存在盲点的。 什么盲点呢?就是无法通过CP…

高效搭建Nacos:实现微服务的服务注册与配置中心

Nacos(Dynamic Naming and Configuration Service)是阿里巴巴开源的一款动态服务发现、配置管理和服务管理平台。它旨在帮助开发者更轻松地构建、部署和管理分布式系统,特别是在微服务架构中。一、关于Nacos 1.1 简介 Nacos(Dynamic Naming and Configuration Service)是阿…

文章评分2

zz:https://blog.csdn.net/Y_sofun/article/details/74502970nodgd的文章由n个小写英文字母组成。文章的一个子串指的是文章中的一段连续的字母,子串的长度就是这一段的字母个数。nodgd在文章中用了排比、对偶、前后照应之类的手法,所以就有很多个子串是相同或者相近的。为了…

02 _ 理解进程(1):为什么我在容器中不能kill 1号进程?

02 _ 理解进程(1):为什么我在容器中不能kill 1号进程?你好,我是程远。 今天,我们正式进入理解进程的模块。我会通过3讲内容,带你了解容器init进程的特殊之处,还有它需要具备哪些功能,才能保证容器在运行过程中不会出现类似僵尸进程,或者应用程序无法graceful shutdow…

Camstar Portal 弹出层的使用:父子页面值传递

效果如下在Onload方法注册事件 protected override void OnLoad(EventArgs e) {try{base.OnLoad(e);SearchBtn.Click += new EventHandler(SearchBtn_Click);TranslateDetails.RowSelected += new JQGridEventHandler(TranslateDetails_SelectChanged);if (SEMI.AppCode.UIUtil…

如何使用飞书自定义机器人通知消息

大家有没有这样的需求,就是正在执行某个任务的时候希望任务完成之后给个通知,或者是软件运行报错的时候每天定期收集错误日志。 平时我们工作用的飞书,所有现在用飞书机器人把消息通知出来,非常简单 好用 的消息通知。 类似这样的消息通知还有企业微信也有。飞书拉群的时候添…

01 _ 认识容器:容器的基本操作和实现原理

01 _ 认识容器:容器的基本操作和实现原理你好,我是程远。作为一名工程师,我猜在过去的几年时间里,你肯定用过或者听人提起过容器(Container)。 说实话,容器这东西一点都不复杂,如果你只是想用的话,那跟着Docker官网的说明,应该十来分钟就能搞定。 简单来说,它就是个…

[Java SE] 核心源码精讲:java.net.URLConnection

概述: URLConnectionURLConnection是一个抽象类,表示指向URL【指定资源】的活动连接URLConnection可以检查服务器发送的首部,并相应地做出响应。 它可以设置客户端请求中使用的首部字段。 URLConnection可以用POST、PUT和其他HTTP请求方法向服务器发回数据; URLConnection类…

中考英语优秀范文-001 How to Eat in a Healthy Way 怎样健康饮食

中考英语优秀范文-001 How to Eat in a Healthy Way 怎样健康饮食 1 写作要求 假设你叫李华,你们市将要举行以 “How to Eat in a Healthy Way” 为题的演讲比赛,请你准备写一篇演讲稿,内容包括: 说明此次演讲的主题 (how to eat in a healthy way); 我们应该少吃、不吃及…

2024-12-28 AI智能体日报

大家好,我是疯狂老包。专注于智能体开发与教学,《100个扣子实战案例持续更新中》。作者:疯狂老包,转载请注明原文链接:https://www.cnblogs.com/laobao1756435/p/18637255