title: Console.In.Peek() returns -1 on enter
body: <p>I would have expected the following C# program to only print "EOF!" once I hit "Ctrl-Z" in the console.
  Instead, the program finishes as soon as I hit Enter:</p>
  
  <pre><code>var textReader = Console.In;
  var sb = new StringBuilder();
  while(textReader.Peek() != -1)
  {
      sb.Append((char)textReader.Read());
  }
  Console.WriteLine("Entered: '{0}'", sb);
  Console.WriteLine("EOF!");
  </code></pre>
  
  <p>Example:</p>
  
  <pre><code>12345 &lt;= I entered this
  Entered: '12345 &lt;= program outputs this
  '
  EOF!
  Press any key to continue . . .
  </code></pre>
  
  <p>Can anyone explain the above behaviour? It's not at all what I expected.</p>
  
  <p>How can I read more than 1 line of input from Console.In one character at a time?</p>
  
  <p><strong>Update:</strong> As answered below: The issue is that Peek() can't be relied on. Using Read() works though.</p>