课程作业(三)
实现设计思路和遇到的问题
文件读写感觉相当麻烦。。
这次用的是fstream进行文件读写,然后通过<<和>>操作符进行一些数据的输入和输出。
不过因为我之前用了CString来处理多语言问题,而fstream在输出CString类型的值时会只输出地址,所以在CString部分,我改用了wfstream。要注意的是,由于这两个读写文件都是先打开先写入,然后再轮到下一个打开文件写入,没法同时进行,所以每个输出部分都需要用对应类型打开文件写入后再立刻关闭文件,这样才能确保数据输出出来是按顺序的。
遇到的问题主要是关于在命令行中输入的文件的目录问题,之前把.exe和.txt文件都放在桌面,在命令行输入文件路径,但却没有成功打开.txt文件,最后我把所有文件直接放在user下才成功运行。可能是输入时需要换目录或者其他原因吧,之后我会再试试看。
还有就是记得每次改写重新编译后,都要复制新的.exe文件过去,不然怎么改都结果都不会变的(不禁感叹自己是有多蠢。。)。
程序运行截图
作业感想
时间好紧。。文件读写方面我一直没怎么去学习,这次作业布置后才赶紧补课。前后试了好几种方法,有的是读写方式本身不能满足题目要求,有的虽然能满足,但因为我不熟悉命令行的操作方式,导致最后没有运行成功,当时还以为是文件读写上的问题,现在想来应该是能够实现的,之后会再试试不同的方法。
为了以后这个程序以后能够愉快地进行迭代,我还是把代码重写了一遍。这次的程序大致能够符合各个文件、模块清晰分离的要求,.cpp和.h分离,一个.cpp对应一个.h。整个程序分为了expression类、fraction类、辅助拓展函数部分和主函数部分,并且把函数、变量等的命名按照制定的规范重新设计了。只是一些细节部分因为时间原因还没有完全处理好,之后会继续修整代码。
还会再补充一些这次学习过程中觉得比较有用的,关于文件读写方面的参考链接。
参考链接
MSDN basic_fstream Class
C++ fstream文件流读写文件操作详解
通过wifstream、wofstream输入输出中文字符
使用wofstream写入中文(Unicode)字符时无内容