在程式使用system("stty erase ^h
");可以實現在輸入狀態下,按退格鍵刪除字元,不回顯。
呼叫tcsetattr修改linux基本輸入的控制字元定義
//linux下退格鍵不回顯
#include #include
#include
#include
#include
#include
int main(int arg,char *args)
/*term.c_lflag &= ~icanon;//取消icanon選項(不規範輸入)
term.c_lflag != icanon;//設定icanon選項(規範輸入)
term.c_cc欄位為要設定的具體特殊輸入字元,如term.c_cc[verase]代表退格鍵
term.c_cc[verase]='\b';意思是擦除乙個字元用退格鍵表示
verase代表向前擦出乙個字元,vintr代表傳送 ctrl + c中斷訊號,ctrl + c的ascii碼為3
例如term.c_cc[vintr]='\t';意思是將tab鍵設定為中斷訊號
tcsetattr中,第二個引數說明--
tcsaflush:傳送了所有輸出後更改才生效,在更改發生時,未讀取得所有輸入資料都被刪除
tcsanow:更改立即生效
tcsadrain:傳送了所有輸出後更改才發生,如果更改輸出引數則應該使用該選項
*/term.c_cc[verase]='
\b';//
'\b'為退格鍵的ascii碼
if(tcsetattr(stdin_fileno,tcsanow,&term)==-1
)
return0;
}
Unix 不回顯輸入密碼
原帖見 http blog.163.com xiaolei li blog static 114404451200911172155783 在軟體開發中,往往會遇到要求使用者輸入密碼的情況。出於對密碼的保密,輸入的字元是不會顯示到螢幕上的。例如,在登入linux系統時,輸入使用者名稱後,輸入的密碼是...
密碼不回顯函式(二)
值得注意的是前面兩個函式都是從鍵盤讀入資料!還有getchar是很值得研究的 getchar 是stdio.h中的庫函式,它的作用是從stdin流中讀入乙個字元,也就是說,如果stdin有資料的話不用輸入它就可以直接讀取了。而getch 和getche 是conio.h中的庫函式,它的作用是從鍵盤接...
getpass 函式 螢幕輸入不回顯
環境 vmware workstation centos 6.4 x86 64 說明 讀寫使用者輸入,螢幕不回顯 char getpass const char prompt getpass用於從鍵盤讀取使用者輸入,但螢幕不回顯。引數prompt為螢幕提示字元。函式返回值為使用者鍵盤輸入的字串。螢幕...