這本書看到現(xiàn)在也應(yīng)該如魚得水了.看一些本書的代碼掃一眼就能知道是什么意思了.
套路已經(jīng)熟悉了~~
如果參數(shù)數(shù)量不是三個(gè)(程序名和兩個(gè)文件名),向標(biāo)準(zhǔn)錯(cuò)誤(也就是屏幕)輸出錯(cuò)誤信息.
然后是用fopen函數(shù)以'r'讀的方式打開參數(shù)寫的文件,并把指針給fp1和fp2.
第一個(gè)++argv是第一個(gè)文件名.
第二個(gè)++argv是第二個(gè)文件名.
(因?yàn)?+i等于i = i + 1)
對(duì)應(yīng)的文件出錯(cuò)就輸出對(duì)應(yīng)的錯(cuò)誤信息.
如果都沒(méi)出錯(cuò)那么執(zhí)行fliecomp函數(shù)對(duì)比兩個(gè)文件,然后fclose函數(shù)清理文件指針.
filecomp函數(shù)
復(fù)雜倒是不復(fù)雜,但是那個(gè)用lp1和lp2與line1和line2作為判斷依據(jù)的表達(dá)式不是很了解是什么原理.
這個(gè)只能拿具體的實(shí)例去試了.
我判斷應(yīng)該是fgets如果讀到文件末尾返回值為NULL.是一個(gè)空指針.
定義為#define NULL (void *)0.
而line就算讀到最后EOF.也是有地址的.
EOF是End Of File的簡(jiǎn)寫,即文件結(jié)尾。其定義為
define EOF -1.
而且值也不同,因此可以當(dāng)做判斷式.
別的倒是沒(méi)啥說(shuō)的