C语言中密码输入问题!C语言中如何实现
参考:
以下程序功能:
接受所有打印字符。
不接受控制字符,如Ctrl+ ,Alt,F1等。
可使用退格键删除以输入字符。
回车键为密码输入完毕
可定义最大字符数。当输入字符数等于最大字符个数时,视为密码结束。
#include
#include
#define TRUE 1
#define FALSE 0
#define MIN_INPUT 0x20
#define MAX_INPUT 0x7e
/*
* 所有功能有此函数实现:
* pszPw : 保存密码的缓冲
* iMaxSize :最大的密码长度,该长度必须小于缓冲区大小。
* 返回值为TRUE为成功获取密码。 ...全部
参考:
以下程序功能:
接受所有打印字符。
不接受控制字符,如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!");
}
}
。收起