C語言 輸入回顯為星號

2021-10-21 10:41:23 字數 1460 閱讀 1504

使用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...