Почему ты не учитываешь, что \n - это окончание строки по традициям UNIX, в Windows строка заканчивается \r\n, например.
Работать-то оно будет, но, в случае Винды, у тебя будет телипаться еще один символ!
ну проверяй тогда на наличие \r .. бред .. тебе мешает +1символ??