使用getch()函式
#include
intgetchar
(void
);
在c語言中,getch()函式用於從stdio流中讀字元,即從控制台讀取乙個字元,但不顯示在螢幕上(我們不需要從緩衝區讀取字元,每個輸入都直接被讀取).
這裡我們通過 max 來決定輸入的最大長度,當輸入字元時會回顯 * ,當按下回車鍵後就會停止輸入並將輸入的內容儲存到passward陣列中,按下刪除鍵可以刪除陣列中的字元,並在螢幕上填充空格,造成刪除的感覺.
#include
#include
#include
#include
void
in_passward
(char
*passward,
int max)
//輸入密碼
printf
("\b");
printf
(" ");
printf
("\b");
i--;}
else
if(c ==
'\r'
)//回車
else
//普通輸入
printf
("*");
//回顯
passward[i++
]= c;}}
}
本來我輸入回車之後一直沒法停止,之後在網上發現這篇部落格講的很詳細,引用一下
getch()
1、標頭檔案:conio.h(不是c標準庫中的檔案,是console input/output(控制台輸入輸出)的簡寫,其中定義了通過控制台進行資料輸入和資料輸出的函式,主要是一些使用者通過按鍵盤產生的對應操作)
2、函式原型:int
getch
(void
)3、返回值:讀取的字元
易錯點:(1
)並非標準函式,要注意移植性(2
)所在標頭檔案是conio.h,而不是stdio.h(3
)在使用之前要呼叫initscr
(),結束時要呼叫endwin
()。否則會出現不輸入字元這個函式
也會返回的情況。(4
)在不同平台,輸入回車,getch
()將返回不同數值,而getchar
()統一返回10
(即\n)
1)windows平台下enter鍵會產生兩個轉義字元 \r\n,因此getch返回13
(\r)。
2)unix、 linux系統中enter鍵只產生 \n ,因此getch返回10
(\n)。
3)mac os中enter鍵將產生 \r ,因此getch返回13
(\r)。
————————————————
77193645
於是茅塞頓開,感謝大佬orz C語言程式設計中實現輸入密碼回顯星號
眾所周知,乙個良好的密碼輸入程式是在使用者輸入密碼時不顯示密碼本身,只回顯星號。或者,在安全性要求更高的某些程式中,什麼都不顯示。那麼,在c語言中如何實現它呢?getc 和getchar 函式想必大家都經常用到,但它們都在輸入的同時顯示輸入內容,並由回車終止輸入。為了不顯示輸入內容,我們呼叫另外乙個...
C語言程式設計中實現輸入密碼回顯星號
眾所周知,乙個良好的密碼輸入程式是在使用者輸入密碼時不顯示密碼本身,只回顯星號。或者,在安全性要求更高的某些程式中,什麼都不顯示。那麼,在c語言中如何實現它呢?getc 和getchar 函式想必大家都經常用到,但它們都在輸入的同時顯示輸入內容,並由回車終止輸入。為了不顯示輸入內容,我們呼叫另外乙個...
替換輸入的密碼為星號 C語言
include include getch define max pw len 16 密碼最大長度int main void 儲存使用者輸入的密碼 printf password getpassword storepassword,max pw len 獲取使用者輸入的密碼 printf nchec...