By the getch we can enter only one char & this is not displayed to stdout and do't wait for the enter key but by the scanf we can enter more than one data type of different data type and it needs to enter a enter key to enter .Actually getch() can get single characteralone and waits for user to hit enter key.where as scanf can get any data type [char, string,int,long] and waits for user to hit enter