\n:换行
\r:回车
fgets在遇到\n或EOF时停止,对\r没有处理。因此可以简单修改fgets代码如下。
char *fgets_(char *s, int n, FILE *stream) {
register int c;
register char *cs;
cs = s;
while(--n > 0 && (c = getc(stream)) != EOF) {
*cs ++ = c;
if (c == '\n' || c == '\r')
break;
}
*cs = '\0';
return (c == EOF && cs == s) ? NULL : s;
}