This question already has answers here:
Closed 5 years ago.
K&R Exercise 1.16 - Limitation on line length
(4个答案)
我正在复习Kernighan和Ritchie的C编程语言,第二版,在练习1-16中,我对理解作业的性质有困难。我已经读了很多遍了,但是我不知道他们到底要我做什么;请原谅,英语不是我的母语。
练习说明如下:
修改最长线路程序的主程序,以便
正确打印任意长输入行的长度
尽可能多的文本。
这是否意味着当程序涉及到最长行的长度时,不应该再受到字符串限制,或者它希望您单独打印每一行及其长度?如果是后者,它希望您在输入每一行及其长度后打印它还是只打印其长度?
我提出的两个选择是完全不同的,所以我非常感谢一些建议。

最佳答案

这是否意味着程序不再受MAXLINE字符串限制的约束?
不,不知道。在书中的这一点上,你不应该知道如何处理和存储任意长度的行。第一章是对C的一个非常肤浅的介绍,不希望您重新设计整个代码。
记住这一点:练习要求您尽可能多地打印行,即,如果行长于MAXLINE字符,则只打印第一个MAXLINE。但你也应该打印原始行的长度。换句话说,你尽可能多地存储MAXLINE个字符,但是你在这个限制之后继续阅读只是为了计数。
要做到这一点,必须更新getline()函数,以便在行尾之前一直对字符进行计数,即使它达到了缓冲区的限制,在这种情况下,它会计数,但是
显然不会将文本写入缓冲区。

08-17 23:38