目前我正在使用此实现在密码输入期间隐藏用户输入:
void setEcho(bool enable) {
HANDLE hStdin = GetStdHandle(STD_INPUT_HANDLE);
DWORD mode;
GetConsoleMode(hStdin, &mode);
if(enable) {
mode |= ENABLE_ECHO_INPUT;
} else {
mode &= ~ENABLE_ECHO_INPUT;
}
SetConsoleMode(hStdin, mode);
}
用户需要能够正面反馈正在进行文本输入。使用C ++在Win32环境中可以使用哪些技术?
答案 0 :(得分:0)
解决方案是不使用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';
}
这种情况下的答案是使用正确的工具来完成工作。 (并且知道正确的工具。)