#include <stdio.h>
#define MAXLINE 10
#define MORE 1
#define NOMORE 0
int mygetline(char line[], int maxline);
int main(void) {
int tmplen, len, max;
int state;
char line[MAXLINE];
tmplen = len = max = 0;
/* init state is NOMORE */
state = NOMORE;
while ((tmplen = mygetline(line, MAXLINE)) > 0) {
/* MORE line */
if (tmplen == MAXLINE - 1 && line[MAXLINE - 2] != '\n') {
len += tmplen;
state = MORE;
printf("%s", line);
} else { /* NOMORE line */
if (state == MORE)
len += tmplen;
else
len = tmplen;
line[tmplen - 1] = '\0';
printf("%s [%d]\n", line, len);
if (len > max)
max = len;
len = 0;
state = NOMORE;
}
}
if (max > 0)
printf("max:%d\n", max);
return 0;
}
int mygetline(char line[], int lim) {
int c, i;
for (i = 0; i < lim - 1 && (c = getchar()) != EOF && c != '\n'; i++)
line[i] = c;
if (c == '\n')
line[i++] = c;
line[i] = '\0';
return i;
}
按作者要求修改main函数实现打印任意长度的输入行的长度,并且尽可能多打印文本~