簡體   English   中英

在C中沒有'return'的情況下從鍵盤獲取輸入

[英]Get an input from keyboard without 'return' in C

如何在鍵盤中輸入輸入,而不在C / Mac Os中按“返回”

在具有終端的類Unix系統上(我認為MacOS X符合條件),那么您需要將終端設置為所謂的“cbreak”模式。 關鍵是終端保持數據直到按下“返回”,這樣你的C代碼就什么也做不了,除非它指示終端不做這樣的緩沖。 這通常稱為“cbreak模式”,涉及tcsetattr()函數。

一點谷歌搜索發現這個代碼似乎很好。 終端處於cbreak模式后,您將能夠讀取標准getchar()fgetc()調用所附帶的數據。

如果您必須自己處理細節,請使用curses變體。 如果它可用,則更喜歡“ncurses”而不是“curses”。 請注意,某些鍵是“Meta”鍵,它們實際上只是修改基本鍵代碼。 讀取鍵輸入有幾種“模式”,范圍從“熟”到“部分熟”到“原始”。 每種模式都有自己的特點,請仔細閱讀文檔。

有時最好使用來自各種游戲編程庫的現有密鑰處理代碼,我聽說使用SDL的密鑰掃描循環可以獲得一些好的結果。 那是一段時間,所以也許存在更新(和更好)的工具包。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM