我正在使用termios.h頭文件在RAW模式下實現控制檯,並試圖禁用 箭頭鍵。我目前使用ctype.h文件來測試從控制檯得到的字符是否是字母數字,但向上箭頭是以字母A的形式發送的。如何禁用控制檯中的箭頭鍵C
如何禁用箭頭鍵。
感謝
我正在使用termios.h頭文件在RAW模式下實現控制檯,並試圖禁用 箭頭鍵。我目前使用ctype.h文件來測試從控制檯得到的字符是否是字母數字,但向上箭頭是以字母A的形式發送的。如何禁用控制檯中的箭頭鍵C
如何禁用箭頭鍵。
感謝
有可能提前字符被扔出去的A
的。你需要弄清楚這些角色是什麼。以下代碼將幫助您找出每個箭頭鍵生成的字符序列。一旦你知道了,你可以修改代碼來忽略這些序列。
int main(void)
{
int c;
while ((c = getchar()) != EOF)
printf("%02x\n", c);
}
事實上,答案是:0x1b(ASCII ESC),0x5b('['),0x41('A'))。所以,如果你想禁用這個,當你看到0x1b時,檢查'['下一步,如果是的話,再加上一個字符。 –
您認爲如何使用libreadline?
我在一個項目中使用這個庫,我建立一個控制檯,工作得很好。您可以在此處看到文檔:http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html
謝謝,但我不允許使用它 – DangerousDave23
向上箭頭應該顯示爲帶有修飾符/轉義序列的A.你需要檢查你的界面。 –
轉義序列是^ A,但我一次得到一個字符我不知道該怎麼做。 – DangerousDave23