主函数没什么说的,如果没有参数,就直接从标准输入读取数据.(后面那个空格符是需要打印的文件名,从标准输入读取的话就没有文件名,就是这个空字符串.)
如果大于1的话依次打开文件调用fileprintf函数打印.如果发生错误就显示错误信息.
这本书看不明白有一大部分原因都是这个翻译的问题.
既然首先用heading函数的返回值初始化记录行数的变量lineno,那就先看heading函数.
也没什么特别的.
heading有两个参数,一个是传给fileprint函数的文件名,还有一个是fileprint函数声明的页数
然后先向标准输出输出两个换行符,然后输出文件名和页数.然后再输出两个.然后返回记录行数的变量ln.
返回fileprint函数,
lineno记录打印标题后的行数.
然后fgets从fp指向的文件读取输入.没有出现错误的话.
判断当前页是不是新的一页,lineno用于记录当前页的行数,而下面的判断式会计算lineno是否超出了当前允许的最大行,如果下一行会超出则另起一页.
输出换页符.
这个程序每一页都会输出标题和页码.
然后正常输出读取的那一行.
然后判断是否超出最大允许的行数.
没什么难度但是很坑人.
网友评论