だからこれのことでしょ?
>>>改行文字の数を数えて、それに1を足した数字を算出します。

信じられないならtotal自体の値をprintf(totalの値: %d\n,total);とでもして表示汁
で、その値が実際調べるファイルの行数より1少ないなら、少なくとも君の環境(&その本の著者の環境)では
正しい行数を表示するにはtotalに(つまり改行文字の数に)1足さなければならない証左になる