After the end of file,the file is filled with null characters,so if you move the file pointer to a far off place and get a line from there then it inputs several '\0' characters into your string which when output by << doesn't show anything.
NULL is a macro for (void *)0 called null pointer and its completely different from '\0' which is null character with ascii value 0.