面向对象程序设计作业4
面向对象程序设计作业4
学习感想
一开始就觉得本次作业是较为简单的,之前大致看了下命令行的知识就觉得花不了多少时间,便一直留着到周六下午才开始正经学习。
然而懂得理论知识不代表便会使用,一经实践便出现了各种各样的问题,此次作业完成得我心慌慌,以后再简单的知识点都要去认真学习。
文件读写、文件路径学习
寒假便有学习了文件输入输出流,当时学习的是ifstream/ofstream流,这次作业中学习了使用freopen/fclose函数来实现文件的输入输出,两者都能顺利实现文件输入输出,个人觉得可能freopen/fclose会较为简单易懂。
命令行学习
- int argc,char *argv[]
argc-arguments count代表输入参数的个数,以空格来计数,第一个参数(argv[0])是程序名(.exe)。
argv-arguments vector,以字符数组的方式储存参数内容。 - 由命令行控制文件读写
argv以字符数组的形式储存我们写入的命令,然后替代文件读写中的文件路径。如freopen( "input.txt", "r", stdin)
——>freopen(argv[1], "r", stdin)
或者ifstream infile("input.txt", ios::in)
——>ifstream infile(argv[1], ios::in)
通过类似这样的操作,我们就能由命令行控制文件读写。 - 当然命令行也不仅局限于使用文件读写,argv储存的是字符串,我们可以像平时使用字符串一样来完成一些其他处理。
遇到的问题
一开始自以为懂得了理论,一下子实践却出了各种各样的细节问题,什么替换时没去掉“”啊,一直打不开文件啊,在其他函数使用时忘记传参啊等等,感觉这次做作业的效率不高。
关于bonus
完成基础的文件读写后,对从命令行读取的参数进行了一些判断处理,如判断参数过多或过少,input/output文件地址不正确,针对本次3个电梯题目的output文件数量不对等判断,并输出提示。
附上程序运行图: