/*星号密码输入功能*/
#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编辑过]
----------------解决方案--------------------------------------------------------
大哥,我太崇拜你了
----------------解决方案--------------------------------------------------------
这个没什么技术哈
----------------解决方案--------------------------------------------------------
这个没什么技术哈
比偶厉害哇 。。^
----------------解决方案--------------------------------------------------------
很抱歉 你的程序有错误啊
----------------解决方案--------------------------------------------------------
还真有人去编译玩呀。。。
在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键等特殊支持
----------------解决方案--------------------------------------------------------
呵呵,确实功能太简单了
----------------解决方案--------------------------------------------------------
不错了。想出个小程序练练手。我现在老想不出有什么东西好练练。。。。
小亮有没?
----------------解决方案--------------------------------------------------------