第十四周总结 2022-2023-1 姚博茗 20221407
学期(2022-2023-1) 学号:20221407 《计算机基础与程序设计》第十四周学习总结
作业信息
课程 | 2022-2023-1-计算机基础与程序设计 |
---|---|
这个作业要求 | 2022-2023-1计算机基础与程序设计第十四周作业 |
这个作业的目标 | 学习C语言文件操作 初步学习如何在Linux上创建并调用自己的静态库与动态库 |
作业正文 | 见下 |
教材学习内容总结
- 这周C语言课结束了,讲完了最后一章——文件操作
教材学习中的问题和解决过程
- 《C语言程序设计》:为什么在文件操作中使用文件读取以及文件写入相关函数时不需要去移动文件指针?
解决:我出现这个问题时没有仔细看书,只是听了老师讲课。后来看过书后,才发现,原来这些函数会自动将文件指针向后移动。同时,也有专门用于复位文件指针的函数。 - 为什么在程序运行结束之前只会看到main.c所在目录中多了一个文件夹,但里面没有写入任何东西?
解决:我查了一下百度,发现也有人有类似的问题。原来是因为我们现在接触的是C语言中的缓冲型文件。数据会先传入到缓冲区,当关闭文件时,才会将内容写入文件中; - 在使用Linux创建动态库时,我不是很理解头文件的作用于是查了一下:
-百度头文件中并不是包含函数的定义,函数的定义被包含在了函数库中。头文件中包含的只是函数的声明以及一些宏 和结构体的定义。作用是在编译器编译时,将头文件展开,编译器读取其中的声明,并在之后的编译中知道哪个是函数。
代码调试中的问题和解决过程
- 乱码:我在进行文件操作时看了一下C语言在文件中写了什么东西,结果是这样的:
我查了一下CSDN发现原来这是因为C语言的编码是ASCII而我的PC使用的可能是类似UTF-8的编码。这就导致了乱码。
- 图片
这个情况让我百思不得其解,为什么在输入字符串时会把后面输入的数据一起带进去呢?我最开始以为问题出在了输入的代码那里,但那里检查不出问题。后来我才知道原来在使用scanf %s进行输入字符串时,应当用空格将不同的数据分隔开,因为scanf只有读取到空格时才会停止读入。
- 图片:
这里由于有两次排序,第一次排序使用指针,第二次排序使用原本的元素。后面的一个函数使用了之前的结果。但是指针已经不再指向正确的位置,因而反复出错。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 200/200 | 2/2 | 20/20 | |
第二周 | 300/500 | 2/4 | 18/38 | |
第...周 | ... | ... | ... | |
第十四周 | 700/1300 | 1/9 | 30/90 |