public int ReadLine(char[] buffer, int start, int length)
{
int i = 0;
int ch = ReadChar();
while (ch != EOF) {
buffer[i+start] = (char)ch;
i++;
if (i+start == length)
break; // buffer is full
if (ch == '\r' ) {
if (PeekChar() == '\n') {
ch = ReadChar();
buffer[i + start] = (char)ch;
i++;
}
break;
} else if (ch == '\n') {
break;
}
ch = ReadChar();
}
return i;
}