linux下退格鍵的小研究(續)

2021-08-08 18:25:26 字數 880 閱讀 3980

上次出現的backspace在輸入的時候顯示^h的問題,請教了一下組裡的老司機,老司機說,這是回顯的問題,要把那個echo什麼的修改一下,順著這條思路,查了點資料,上面一篇部落格就是其中之一。

廢話少說,直接放碼:

#include #include #include #define len 30

struct termios oldt, newt;

void mode_off(void);

void mode_restore(void);

void get_username(char * string, int len)

else

ch=getchar();

} putchar('\n');

string[i]='\0';

mode_restore(); }

void get_password(char * string, int len)

else

ch=getchar();

} putchar('\n');

string[i]='\0';

mode_restore();

}void mode_off(void) //off echo

void mode_restore(void) //restore echo

mode_off是關掉回顯,mode_restore是恢復原來的模式,get_username是輸入使用者名稱,get_password是輸入密碼

關掉回顯後,讀乙個顯示乙個,如果讀到backspace,游標往回退乙個,輸個空格,覆蓋原來的字元,再退一格,往前進一步。輸密碼的時候,則是輸乙個字元,顯示乙個*。

至此,backspace的問題基本解決。

16 linux 程式輸入時退格鍵的問題

在程式中經常要與使用者進行互動,最簡單的就是從命令列獲取輸入,通常使用 cin 或者 scanf 來獲取使用者 輸入資訊。但使用者有時候會輸入錯誤,想使用退格鍵刪除重新輸入時,系統往往會將退格鍵也當做使用者的輸入,退格 鍵也會被回顯到螢幕上,因此無法實現我們預期的退格刪除功能。解決辦法如下 方法一 ...

Linux下 hid quirks的研究

者 sam 甄峰 sam code hotmail.com sam在讀usb hiddriver時,看到quirks這部分內容。因為之前在看usb部分 時,常看到類似的內容,但對它的語義理解並不清楚,只是籠統地認為是乙個需要修正的東西。現在稍微研究一下。一 quirks簡介 quirks 怪癖的意思...

關閉linux退格鍵和vi發出的嘟嘟聲(報警聲)

網上有介紹 vi etc inputrc,然後去掉set bell style none前的注釋,修改完,你需要退出當前的shell,再次登入才能生效。這個時候,你可以用按下crtl g來測試一下。但這樣的 做法只能只能命令列下的錯誤報警聲,而用vi less和man編輯的時候還是會發出嘟嘟的報警聲...