Neither EOF nor SeekEOF will work on StdIn/Input, because it is a pipe, and this is only EOF when the other side is closed. So as long as it was not closed (e.g. by using ctrl+D in the console), this will try to continue to read, and therefore be blocking.
It's not usable to check how much is buffered within a pipe. What can be done is to use select to check if something is in buffer, do a non blocking read (set O_NOBLOCK in the file descriptor attributes on Linux), or try to do a read with the PEEK flag (but I don't know if this works for pipes or only for sockets)