c语言中输入密码时用暗码显示怎么实现

如题所述

用bios中断实现,调用库函数bioskey(int cmd)需包含头文件bios.h,程序如下:
#include<stdio.h>
#include<bios.h>
#define N 6
void main()
{
int i,key;
char a[N];
printf("Input your password:");
for(i=0;i<N;i++){
key=bioskey(0);
a[i]=key;
printf("*");
}
printf("\nYour password is:");
for(i=0;i<N;i++){
printf("%c",a[i]);
}
getch();
}
绝对是刚写好的,不过要在专门的C编译器上编译,例如TC,Win-TC,不能在VC++6.0上,因为C++的里没有bios.h这个头文件。
如果有疑问再问,希望采纳!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-09-20
前不久正好自己写了一个,在VC6.0上能运行
希望对你有所帮助:
在main函数中调用这个就行了,特地地,如果你的密码最长为16位,须将字符数组设置大小为17
#include<stdio.h>
#include<conio.h>
char *inputpass(char *p) //密码输入专用格式函数
{
char ch;
leap: while((ch=getch())!='\r')
{
if(ch=='\b') //如果用户输入一个退格
{
p--; // 将p向前移一个
putchar('\b');
putchar(32); //32指的为空格
putchar('\b'); //以上三句完成在屏幕上的效果
goto leap; //再次进行判断
}
else
{
*p=ch;
putchar('*');
p++;
}
}
(*p)='\0'; //最后一位存放'/0',所以使用该函数的数组需加长一位
printf("\n");
return p;
}

main()
{
char password[17];
printf("请输入密码:");
inputpass(password);
printf("您的密码为:"); //验证使用
puts(password);
}
第2个回答  2010-09-19
#include <stdio.h>
int main(int argc, char *argv[])
{
char str[10];
int i = 0;
while (i < 10)
{
*(str + i) = getch();
if (*(str + i) == '\r')
{
putchar('\n');
break;
}
i++;
putchar('*');
}
*(str + i) = '\0';
printf("%s\n", str);
return 0;
}

如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快!
相似回答