in reply to Reading keys

I've sometimes wondered about this myself. If you can get input from <STDIN> and end it with a carriage return, why can't you set a different key to end the input? Why isn't there a way to get a single keystroke? getc() will return a character from the input stream, but it still waits for the carriage return, and setting the record separator to something other than \n doesn't work either.