需要使用#include <conio.h> 头文件,这个头文件中
说明:
1、getch()函数功能:在windows平台下从控制台无回显地取一个字符。
用法 int getch(void) 。
返回值 从键盘上读取到的字符。
2、 putch()函数功能: 在当前光标处向文本屏幕输出字符ch,然后光标自动右移一个字符位置。
用 法: int putch(char ch),其中参数ch为要输出的字符。
返回值:如果输出成功,函数返回该字符;否则返回EOF。
3、几个常用键的ascii码:
回车键: VK_RETURN (13)
空格键: VK_SPACE ($20/32)
退格键: VK_BACK (8)
//输入密码是显示为*
int retpassword_input(){
char pass[7];
char passconfirm[7];
int password_convert = 0;
int i=0;
cout<<"请输入6位数密码:";
//13代表回车键 回车键: VK_RETURN (13) 空格键: VK_SPACE ($20/32) 退格键: VK_BACK (8)
while((pass[i]=getch())!= 13){
if (pass[i] == 8)//退格键
{
cout << "\b";
cout << " ";
cout << "\b";
//putchar('\b');//这里是删除一个,我们通过输出回撤符 /b,回撤一格,
//putchar(' ');//再显示空格符把刚才的*给盖住,
//putchar('\b');//然后再 回撤一格等待录入。
i--;
}
else if('0' <= pass[i] && pass[i] <= '9' ){
putch('*');
i++;
}
}
pass[i]='\0';
i=0;
cout<<"\n请确认密码:";
while((passconfirm[i]=getch())!= 13)
{
if (pass[i] == 8)
{
cout << "\b";
cout << " ";
cout << "\b";
//putchar('\b');//这里是删除一个,我们通过输出回撤符 /b,回撤一格,
//putchar(' ');//再显示空格符把刚才的*给盖住,
//putchar('\b');//然后再 回撤一格等待录入。
i--;
}
else if('0' <= passconfirm[i] && pass[i] <= '9' )
{
putch('*');
i++;
}
}
passconfirm[i]='\0';
if(strcmp(pass,passconfirm)==0)
{
cout<<"\n恭喜您开户成功"<< endl;
for(int j = 0; j < 6 ; j++)
{
//这里注意字符转换为数字时是以ASCII转化的,'0'=49
password_convert = password_convert*10 + (int)passconfirm[j] - 48;
}
cout<< "您的密码是:" << password_convert << endl;
}
else
{
cout<<"\n两次密码不一致,请重新输入.\n";
retpassword_input();
}
return password_convert;
}