【发布时间】:2015-06-30 20:21:28
【问题描述】:
我正在获取密码作为输入。 我已经浏览了各种示例,但它们要么使用了 while 循环,要么使用了 SETCONSOLE 方法。两者都有问题。 在我输入一个字符之前实现 while 循环打印 1 *。另一种方法使用 echo HIDE 在我键入时要打印的字符。我会很感激帮助我使用 SETCONSOLE 方法用 * 掩盖我的输入。我将不胜感激。附上代码!
void signup(){
gotoxy(10, 10);
string n, p1,p2;
cout << "Enter your username: " << endl; // TEST if username already exists
gotoxy(31, 10);
cin >> n;
lp:
gotoxy(10, 11);
cout << "Enter your password: " << endl; // TEST if username already exists
gotoxy(31, 11);
getline(cin, p1);
system("cls");
gotoxy(10, 10);
cout << "Re-Enter your password to confirm: " << endl; // TEST if username already exists
gotoxy(45, 10);
getline(cin, p2);
if (p2!=p1)
{
system("cls");
gotoxy(10, 10);
cout << "Passwords donot match! Please enter again!";
goto lp;
}
}
【问题讨论】:
-
请指定您的目标操作系统,并提供您已经尝试过的短代码 sn-p。
-
什么是 SETCONSOLE 方法?
-
@Raw N DWORD 模式; HANDLE hConIn = GetStdHandle(STD_INPUT_HANDLE); GetConsoleMode(hConIn, &mode);模式=开? (模式 | ENABLE_ECHO_INPUT ) : (模式 & ~(ENABLE_ECHO_INPUT)); SetConsoleMode( hConIn, mode );