主函數(shù)沒什么說的,如果沒有參數(shù),就直接從標準輸入讀取數(shù)據(jù).(后面那個空格符是需要打印的文件名,從標準輸入讀取的話就沒有文件名,就是這個空字符串.)
如果大于1的話依次打開文件調用fileprintf函數(shù)打印.如果發(fā)生錯誤就顯示錯誤信息.
這本書看不明白有一大部分原因都是這個翻譯的問題.
既然首先用heading函數(shù)的返回值初始化記錄行數(shù)的變量lineno,那就先看heading函數(shù).
也沒什么特別的.
heading有兩個參數(shù),一個是傳給fileprint函數(shù)的文件名,還有一個是fileprint函數(shù)聲明的頁數(shù)
然后先向標準輸出輸出兩個換行符,然后輸出文件名和頁數(shù).然后再輸出兩個.然后返回記錄行數(shù)的變量ln.
返回fileprint函數(shù),
lineno記錄打印標題后的行數(shù).
然后fgets從fp指向的文件讀取輸入.沒有出現(xiàn)錯誤的話.
判斷當前頁是不是新的一頁,lineno用于記錄當前頁的行數(shù),而下面的判斷式會計算lineno是否超出了當前允許的最大行,如果下一行會超出則另起一頁.
輸出換頁符.
這個程序每一頁都會輸出標題和頁碼.
然后正常輸出讀取的那一行.
然后判斷是否超出最大允許的行數(shù).
沒什么難度但是很坑人.