【来信】
老师您好:
我也是一名初学C++的学生,从这学期开始也一直都在跟着您学习,今天看到您的文件+结构体这个项目,关于后边的选择30名同学发奖学金,我有新的想法就是把之前排好序的信息存储到一个新的文件中,然后再从这个新文件中取数据判断,因为自己是初学者,虽然实验了几个数是成功的,可还是想请教一下老师,我不太懂的是为什么排好序之后的数据可以保存生成新的文件,在程序运行中这些中间数据是存储在哪里的呢?一直到程序结束,是不是他们一直都在呀?还有就是在向文件中存储数据的时候为什么数据一定是要分行的?麻烦老师了,还请老师赐教!【回复】
需要了解一下计算机的存储系统。计算机的存储系统包括内存、外存两部分(缓存之类的,学计算机组成时再说)。内存小,快,断电就没了;外存指磁盘等,慢,很大,断电后还在。文件就存在在外存上。程序运行中,将文件中的数据读入,就是从外存的文件中,读到了内存里。对于这个程序而言,定义了数组,数组分配在内存里(所以访问起来很快),读入的数据就在内存中的这一段空间里了。只要数组在其作用范围内,就一直能够访问。
文件中存储的数据并不一定分行,各个数据用空格隔开,或者用Tab(\t)隔开都可以,这和键盘输入,显示器输出的要求一样,请参考相关资料。
你的方法将中间结果保存到文件中,这是可行的,但却不常用。原因是中间结果在外存,速度会慢,也是对磁盘无意义的磨损,就让它在内存中待着好了,避免了频繁地访问磁盘还速度快,何苦而不为?
china-pub(正在发售) 卓越网(接受预订) 图灵社区 官方试读本下载 豆瓣 |
==================== 迂者 贺利坚 CSDN博客专栏================= |== IT学子成长指导专栏 专栏文章分类目录(不定期更新) ==| |== C++ 课堂在线专栏 贺利坚课程教学链接(分课程年级) ==| ======== 为IT菜鸟起飞铺跑道,和学生一起享受快乐和激情的大学 ======= |