爱问知识人 爱问教育 医院库

C语言中密码输入问题!

首页

C语言中密码输入问题!

C语言中如何实现输入密码?(在输入时显示为*号.)

提交回答
好评回答
  • 2018-04-06 05:24:06
     你说是用标准C吧?
      这个问题很是新颖,我也费了番工夫去想。因为在C语言中不像VC与VB等可视化的编译系统,他好像没有提供这种函数(我没有找到)
      我想有一种方法可以大概的实现它。用for 语句和getch( );putchar (‘*’);来实现的,而getch 不分区另ENTER和BACKSPACE等特殊键,不好控制它的结束。因此只有避过问题强行规定密码必须是8位的,但在输入密码时仍然不允许用户输入ENTER和BACKSPACE等特殊键。
       我已用这种方法试验过,结果与问题正如上面所述。你也不妨一试。
    

    沵***

    2018-04-06 05:24:06

其他答案

    2018-04-06 10:24:06
  • 去请教专家

    一***

    2018-04-06 10:24:06

  • 2018-04-06 07:24:06
  • 自己写个函数,使用getch读取键盘输入,只接收那些密码允许的字符。没接受到一个合法的字符就再屏幕上输出一个“*”。

    幸***

    2018-04-06 07:24:06

  • 2018-04-06 06:24:06
  •   参考: 
    以下程序功能:
    接受所有打印字符。
    不接受控制字符,如Ctrl+ ,Alt,F1等。
    可使用退格键删除以输入字符。
    回车键为密码输入完毕
    可定义最大字符数。当输入字符数等于最大字符个数时,视为密码结束。
    #include 
    #include 
    #define TRUE 1
    #define FALSE 0 
    #define	MIN_INPUT 0x20
    #define	MAX_INPUT 0x7e
    /*
    *  所有功能有此函数实现:
    *  pszPw : 保存密码的缓冲
    *  iMaxSize :最大的密码长度,该长度必须小于缓冲区大小。
       * 返回值为TRUE为成功获取密码。
      总是返回TRUE */ int GetPassword(unsigned char* pszPw,int iMaxSize) { unsigned char ch; int i=0; int bIsEcho=TRUE; //while( ! kbhit() && i= MIN_INPUT && ch 0 ) /*退格键*/ { pszPw[i--] = 0; bIsEcho = FALSE; putchar( ch ); putchar( ' ' ); putchar( ch ); } else bIsEcho = FALSE; if(bIsEcho) putchar('*'); } pszPw[i]=0; return TRUE; } int main(void) { int iMaxSize=80; unsigned char pw[99]; if ( GetPassword(pw,iMaxSize) == TRUE ){ printf("\npassword=%s",pw); } else{ printf("\nCan not get the password!"); } } 。

    藕***

    2018-04-06 06:24:06

类似问题

换一换

相关推荐

正在加载...
最新问答 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 177-196
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):