当前位置: 代码迷 >> C语言 >> 请教个问题.密码筐显示*
  详细解决方案

请教个问题.密码筐显示*

热度:107   发布时间:2008-02-26 11:37:43.0
请教个问题.密码筐显示*
就是我输入字符的时候.能像WINDOWS下.密码框那样.显示*.而不显示实际字符
搜索更多相关的解决方案: 密码  WINDOWS  字符  输入  

----------------解决方案--------------------------------------------------------
/*自己在这基础上加密码外框 */
/*输入回车为结束 输入退格键改写 */
#include"stdio.h"
#include<conio.h>
int main(void)
{
    char a;
    while((a=getch())!='\r')   
    {       
          if(a!='\b')
           printf("*");
       else  
       {
           printf("\b");
           printf(" ");
           printf("\b");      
       }
    }   
           
    return 0;   
}

[[it] 本帖最后由 xianshizhe111 于 2008-2-26 12:37 编辑 [/it]]
----------------解决方案--------------------------------------------------------
楼上的方式不错.呵呵.小而简洁....
----------------解决方案--------------------------------------------------------
的确不错,但这样上特殊键将占有两个*.
----------------解决方案--------------------------------------------------------
哪两个*说来听听..
----------------解决方案--------------------------------------------------------
比如方向健,用getch第一次返回特殊值(devcpp上是 -32 ,tc是0);
再用一次getch才能得到健值。所以按一下上键,会同时跳出2个'*'
----------------解决方案--------------------------------------------------------
/*真是谢谢你啊!我又进了一步 改良版,输入数字(0-9)和小写字母(a-z)其它不起作用*/ /*原操作方法不变*/
#include"stdio.h"
#include<conio.h>
int main(void)
{
    char a;
    while((a=getch())!='\r')
    {
       if(a>='0'&&a<='9'||a>='a'&&a<='z')
           printf("*");
       else if(a=='\b')
       {
           printf("\b");
           printf(" ");
           printf("\b");
       }
    }

         getchar();
    return 0;
}
----------------解决方案--------------------------------------------------------
我喜欢听别人的意见.
----------------解决方案--------------------------------------------------------
利用 getch()
----------------解决方案--------------------------------------------------------
呵呵````要做好这个功能不容易啊```

除了方向键``还有HOME END键``中键盘的键都是2个值``
----------------解决方案--------------------------------------------------------
  相关解决方案