В чем отличие getchar() и getch() в C++ ?
cin >> a;
	cout << a;
	getchar();
Как минимум enter, которым был завершён ввод числа a, остался в буфере stdin.
Можно использовать fflush(stdin); getchar();
А лучше выкинуть совсем этот пережиток ДОС и запускать своё приложение в нормальном терминале.
stdin видимо не пустой и getchar успешно возвращает первый char из оного. Посмотрите что getchar возвращает.