-2
我已经从网上复制了这个功能。我不明白c == 8 && pos
在这个功能中意味着什么,ch
是一个字符,它怎么可能等于8
。我想将密码长度更改为4,现在是13。当我尝试更改并编译它时。程序运行成功,但不停止输入密码,即使按下输入密码也不会停止输入密码。我的(密码)功能有什么问题?
我认为它必须在c == 8 && pos
下面的函数中做些什么。
void password(char buffer[])
{
char c;
int pos = 0;
printf("Enter Password : ");
do
{
c = getch();
if(isprint(c))
{
buffer[ pos++ ] = c;
printf("%c", '*');
}
else if(c == 8 && pos)
{
buffer[ pos-- ] = '\0';
printf("%s", "\b \b");
}
}while(c != 8);
}
8是一个ASCII退格字符,该部分是处理当您按退格键时删除字符。 – PeterJ
'13'是'Enter'键的ASCII码。 'while(c!= 13);''Enter'后会停止输入' –
非常感谢! –