全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:911
推到 Plurk!
推到 Facebook!

dos password 遮蔽輸入

尚未結案
renth555
一般會員


發表:32
回覆:65
積分:19
註冊:2003-02-17

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-06-08 12:07:05 IP:61.56.xxx.xxx 未訂閱
int main(int argc, char* argv[]) { char PW[30]; char HH[30]="renth"; int X; printf("Password: "); scanf("%s",PW); X=strcmp(PW,HH); if(X==0) { return 0; } return 1; } 我這樣寫可以判斷使用者輸入做密碼核對 但問題在於 scanf("%s",PW); 輸入的內容如何只顯示 * 字元 or 可做mask的功能呢 char *password; password = getpass("Input a password:"); cprintf("The password is: %s\r\n", password); 這個語法雖然可以作密碼輸入功能,但是當使用者做輸入時卻無法得知輸入文字 我想要的他有類似 mask 遮蔽文字功能
Royce520
高階會員


發表:18
回覆:157
積分:100
註冊:2002-09-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-06-08 15:02:43 IP:61.59.xxx.xxx 未訂閱
renth555 你好,   我不知到有沒有現成函數可以做, 不過你可以用一些 functions   兜起來, 如   getch() 取得輸入字元, 這個不會顯示出字元, 再來   putch() 秀出你想要用的 mask 字元就可以了.    *真實的事物最美, 簡單的道理最好, 我能體會的 太少*
------
不要忘記呼吸,不要忘記編程! ∩__∩
順子
一般會員


發表:3
回覆:14
積分:6
註冊:2002-06-25

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-06-09 23:59:37 IP:210.68.xxx.xxx 未訂閱
renth555兄: 小弟用 Royce520兄 的說法寫了一個程式給你參考一下 int main(int argc, char* argv[]) { char Password[30]="1234"; char Inputword[30]; char ch=0; int i=0; printf("Input PASSWORD : "); while(1) { ch = getch(); if (ch == 27) { printf("\nAbort Input"); break; } if (ch == 13) { if (strcmp(Password,Inputword) == 0) { printf(" ... OK"); break; } else { i=0; printf(" ... Error"); printf("\nInput PASSWORD : "); } } if (ch == 0) { getch(); continue; } if (!iscntrl(ch)) { Inputword[i ] = ch; Inputword[i]='\0'; putch('*'); } } getch(); return 0; } BCB新手~~請多多指教
------
Hello!!
我是順子、順子是我
renth555
一般會員


發表:32
回覆:65
積分:19
註冊:2003-02-17

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-06-15 00:42:04 IP:61.56.xxx.xxx 未訂閱
char PW[30];    char HH[30]="999";    char ch=0;    int i=0;    int x=1;    int o=0;    printf("Input a password: ");    while (1)    {       ch = getch();          if(ch == 27)       {          return 1;       }       if(!iscntrl(ch))       {          PW[i++]=ch;          PW[i]='\0';          putch('*');       }       if(ch == '\r')       {          if(strcmp(PW,HH)==0)          {             printf("\nok");             getch();             return 0;          }else{             o=i;             i=0;             x++;             if(x>3)             {                return 1;             }else{                for(int z=0;z
順子
一般會員


發表:3
回覆:14
積分:6
註冊:2002-06-25

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-06-17 22:41:02 IP:210.68.xxx.xxx 未訂閱
renth555兄: 你可以用 if (ch == 8) //按下Backspace { i--; } BCB新手~~請多多指教
------
Hello!!
我是順子、順子是我
系統時間:2024-08-04 1:38:43
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!