Решением является не использование stdio.h, а использование conio.h. Следующая процедура решает вышеуказанную проблему. Обратите внимание, что отключение эха больше не требуется:
void scanPass(char* passwordEntry, int length) {
int index, ch;
for(index = 0; index < (length - 1) && ((ch = _getch()) != EOF)
&& (ch != 13); index++) {
passwordEntry[index] = (char)ch;
_putch('*');
}
passwordEntry[index] = '\0';
}
Ответ в этом случае заключается в использовании правильного инструмента для работы. (И знать правильный инструмент.)