Getchar would be better in case of a menu, since it's not buffered, by default. With scanf that would require flushing the buffer on erroneous input. Your call, anyway, but unless you need to read more than one character at a time (like, inputting a name, a date, or something similar), use getchar.