I'm not sure that conio.h functions are made to work with stdin and stdout. They are strictly designed for use with the console (thus the name, and thus the C Standards won't let them be standard - they are IO specific, instead of the generic that the Standard adheres to.
In this program, getche() (which should echo to the console), will echo, but with a slight change, it will show nothing.
Code:
#include <stdio.h>
#include <conio.h>
int main() {
int mychar;
mychar=getche();
//if you include the getchar(), then getche() will succeed.
//remove it and recompile, and getche() will show nothing
// on the console.
getchar();
//this print line has priority on printing to the console.
//Without the getchar(), getche() line just above, will be usurped, in Win 7.
printf("mychar: %c\n",mychar); //this just proves that your
//console is working OK, is stdout, and mychar received the value
getchar(); //stops the program from disappearing too quickly.
return 0;
}
Echo just means "print on the console". They couldn't use the word print because that was used to route output to the printer.