0
私は標準入力からのユーザ入力を読み取り、次のプログラムがあります。Golang、
var input string = ""
exec.Command("stty", "-F", "/dev/tty", "cbreak", "min", "1").Run()
exec.Command("stty", "-F", "/dev/tty", "-echo").Run()
var b []byte = make([]byte, 1)
for {
input += string(b)
}
を、私は内部の条件のいくつかの種類を配置したいですforループは、ユーザーが「Enter」(たとえば)を押すか、ユーザーが(バックスペース)を押したときに文字列から1つの文字を削除すると「中断」することができます。しかし、私はそれらの2つのキーのバイト配列または文字列表現が何であるか把握することはできません。これをどうやって見つけ出すのですか?単に\ wを出力し、バックスペースは未定義の文字を出力します。
UNIXシステムでは、 "return"はおそらく '" \ n "'で、 '" \ b "'や '" \ x7f "'の文字列をバックスペースにします。 – Vatine
'github.com/nsf/termbox-go'や' github.com/jteeuwen/keyboard/termbox'(これは前者を利用しています)を使わないのはなぜですか?私は、あなたの仕事を解決するためのやや独特のアプローチを選んだと感じています。その代わりに、端末を「未加工」モードに切り替え、送信するデータを処理してください。 'termbox'はあなたのために大変です。 – kostix
http://godoc.orgを使用して、これらのパッケージがあなたのためにできることの概要(および他のオプションを検索する)を検討してください。 – kostix