I/O处理也是期末必考,,,所以。。。精华内容在反思处。
题目1
题目描述
reference sheet是这篇。
题目的要求主要是对命令行的理解吧./calculator <operation> <input filename> <output filename>。然后有三种operation,add,magic_1,magic_2,然后这三个function的pointer都在func_arr里,input file用这三个operation操作,操作的结果放到output file这样。题目也给了一个这样操作的例子,具体看四个问题。
problem 1
C/C++ argc 和argv - 知乎 (zhihu.com)参考了这篇
argc 是argument count的缩写表示传入main函数中的参数个数,包括这个程序本身
argv 是argument vector的缩写表示传入main函数中的参数列表,其中argv[0]表示这个程序的名字,在上面两个名词的解释中提到“这个程序”,所谓的“这个程序”就是包含main函数的程序。
argc是4的原因我理解的是,main1个,func_arr1个,input.txt1个,output.txt1个,argv[0]是main的话,那么argv[1]就是func_arr。(上课没讲到过这个,,,晚点学习下相关内容)。但如果是这样的话func_index = argv[1][0]-'0'的问题在于为什么要减去'0'呢,直接用这个地址就可以了。
先把疑问留下来。
problem 2
可以理解为“初始化”的过程,上下分别为input.txt和output.txt。
problem 3
problem 4
题目2
题目描述
反思
待完善,先去考试了...
目前来看,自己的掌握至多只能算是会操作了,但是具体的过程(编译的过程)还是不清楚的,换言之,也就是只掌握到think softwarely吧。
main
main(argc,argv[]){},main小括号里面的这两个,我之前是不知道的。。。但是具体的细节还是没有弄清楚。
I/O
第一步是打开文件
第二步是处理文件(处理文件需要熟悉reference sheet里的方法)
第三步是关闭文件
只要是异常,都需要关闭之前打开的文件(换言之,只要结束程序,都需要关闭之前打开的文件)