2022-2023-1 20221313《计算机基础与程序设计》第十四周学习总结
2022-2023-1 20221313《计算机基础与程序设计》第十四周学习总结
作业信息
作业课程 | https://edu.cnblogs.com/campus/besti/2022-2023-1-CFAP |
---|---|
作业要求 | https://www.cnblogs.com/rocedu/p/9577842.html#WEEK14 |
作业目标 | 学习《C语言程序设计》第十三章 |
作业正文 | https://www.cnblogs.com/lu-yu/p/16929085.html |
教材学习内容总结
《C语言程序设计》第十三章:
主要讲了文本文件和二进制文件的定义以及区别;
文件的打开方式以及如何打开文件和关闭文件,即fopen()函数和fclose()函数;
如何读写文件中的字符,以及如何读写文件中的字符串,即fgetc()函数和fputc()函数;
如何按指定格式从文件读数据和向文件写入数据,即fscanf()函数和fprintf()函数;
如何按数据块读写文件,即fread()函数和fwrite()函数。
教材学习中的问题和解决过程
- 问题1:什么是文件系统?文件系统就是某一类文件的组合吗?
- 问题1解决方案:
文件系统是操作系统用于明确存储设备(常见的是磁盘,也有基于NAND Flash的固态硬盘)或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。
文件系统由三部分组成:文件系统的接口,对对象操纵和管理的软件集合,对象及属性。从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,当用户不再使用时撤销文件等。 - 问题2:什么是缓冲区?有什么作用?
- 问题2解决方案:
缓冲区就是我们常说的缓存,属于内存的一部分。它依据对应的输入设备和输出设备把内存的一部分空间分为输入缓冲区和输出缓冲区。
可以减少对磁盘的读写次数,提高计算机的运行效率。系统调用时需要时间的,程序中频繁的使用系统调用会降低程序的运行效率 ,库函数访问文件的时候根据需要,设置不同类型的缓冲区,从而减少了直接调用IO系统调用的次数,也就提高了效率。 - 问题3:fflush()函数有什么更多的的用法呢?
- 问题3解决方案:
函数的定义:int fflush(FILE *stream);
如果stream指向输出流或者更新流(updatestream),并且这个更新流最近执行的操作不是输入,那么fflush函数将把任何未被写入的数据写入stream指向的文件(如标准输出文件stdout)。否则,fflush函数的行为是不确定的。
fflush(NULL)清空所有输出流和上面提到的更新流。如果发生写错误,fflush函数会给那些流打上错误标记,并且返回EOF,否则返回0。
由此可知,如果 stream 指向输入流(如stdin),那么 fflush函数的行为是不确定的。故而使用 fflush(stdin)是不正确的,至少是移植性不好的。
代码调试中的问题和解决过程
-
问题1:无法将数据读入文档中。
-
问题1解决方案:通过翻阅课本,发现exit()函数是在stdlib头文件中的,应当在开头加上#include <stdlib.h>。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 200/200 | 2/2 | 10/10 | |
第二周 | 300/500 | 2/4 | 18/28 | |
第三周 | 300/800 | 3/7 | 20/48 | |
第四周 | 300/1100 | 2/9 | 20/68 | |
第五周 | 300/1400 | 2/11 | 20/88 | |
第六周 | 300/1700 | 4/15 | 20/108 | |
第七周 | 300/2000 | 1/16 | 20/128 | |
第八周 | 300/2300 | 1/17 | 20/148 | |
第九周 | 300/2600 | 3/20 | 20/168 | |
第十周 | 300/2900 | 1/21 | 20/188 | |
第十一周 | 200/3100 | 1/21 | 20/208 | |
第十二周 | 200/3300 | 1/22 | 20/228 | |
第十三周 | 200/3500 | 1/23 | 20/248 | |
第十四周 | 200/3700 | 1/24 | 20/268 |
-
计划学习时间:20小时
-
实际学习时间:20小时