There is a Serial.peek() function if you want to print the character without removing it from the buffer.
Incidentally, the cast to (char) is needed because Serial.read() returns a signed integer, not a character. The reason for this is so read() can return a value of -1 to indicate that the buffer is empty.