Actually, I'm new at C-programming, so there is the sample from Kernighan & Ritchie's "The C Programming Language":
int getline(char s[], int lim)
{
int c, i;
i=0;
while (--lim > 0; && (c=getchar()) !=EOF && c !='\n')
s[i++] = c;
if (c =='\n')
s[i++] = c;
s[i] = '\0';
return i;
}
Why do we should check if c != '\n', despite we use s[i++] = c after that?