当前位置: 代码迷 >> C语言 >> [分享]星号密码输入--支持BackSpace键了
  详细解决方案

[分享]星号密码输入--支持BackSpace键了

热度:345   发布时间:2007-02-07 09:03:58.0
[分享]星号密码输入--支持BackSpace键了

/*星号密码输入功能*/


#include <stdio.h>
#include <conio.h>

#define MAXLEN 13 /*密码最大长度为12(13-1)*/
int main()
{
char password[MAXLEN];
char c;
int i=0;
puts("请输入密码:");

while(i<MAXLEN-1){
c=getch(); /*接收字符不回显*/
switch (c)
{
case 8: /*BackSpace键*/
/*用一个空格替换原字符并把光标后移一位*/
if (i!=0){
--i;
password[i]='\0';
putchar('\b');
putchar(' ');
putchar('\b');
break;
}
break; /*当i为0时退出*/
case '\r': /*回车键*/
goto dispkey;
default:
password[i]=c;
putchar('*');
++i;
}
}
dispkey:
password[i]='\0';
printf("\n你的密码是:\n%s",password);
getch();
return 0;
}

输入出错时,按backspace键清除

[此贴子已经被作者于2007-2-7 17:21:40编辑过]

搜索更多相关的解决方案: BackSpace键  星号密码  int  char  include  

----------------解决方案--------------------------------------------------------

大哥,我太崇拜你了


----------------解决方案--------------------------------------------------------

这个没什么技术哈
----------------解决方案--------------------------------------------------------
以下是引用田里兵蜂在2007-2-7 10:09:03的发言:

这个没什么技术哈



比偶厉害哇 。。^
----------------解决方案--------------------------------------------------------

很抱歉 你的程序有错误啊


----------------解决方案--------------------------------------------------------
还真有人去编译玩呀。。。

在password后面加上[i]!
----------------解决方案--------------------------------------------------------

/*星号密码输入功能*/


#include <stdio.h>
#include <conio.h>

#define MAXLEN 13 /*密码最大长度为12(13-1)*/
int main()
{
char password[MAXLEN];
char c;
int i=0;
password[MAXLEN-1]='\0';
puts("请输入密码:");

while(i<=MAXLEN-2){
c=getch(); /*接收字符不回显*/
if (c=='\r'){ /*回车结束输入*/
password[i]='\0';
break;
}
else{
password[i]=c;
putchar('*');
}
++i;
}
printf("\n你的密码是:\n%s",password);
getch();
return 0;
}


----------------解决方案--------------------------------------------------------
这个程序应该判断是否为可以显示的字符?

还有要对,Back Space键等特殊支持
----------------解决方案--------------------------------------------------------
呵呵,确实功能太简单了

----------------解决方案--------------------------------------------------------

不错了。想出个小程序练练手。我现在老想不出有什么东西好练练。。。。

小亮有没?


----------------解决方案--------------------------------------------------------