文字列入力ではなく、キーが1文字入力されたら処理をしたい。
8bitマイコン世代には普通のことなんだが、rubyでどうやるか難儀した。
普通にgetcするとSTDIN.getcしろと出るのでそうするのだが、enterキーを押さないと処理されない。
enterキーは余計なんだが、といいつつググるのだが全然解決策がヒットしない。
仕方ない perl でやるかとググると、system stty rawする必要があると分かった。
なんだターミナルの問題だったのか、rubyでも出来るじゃん。ホッ。
8bitマイコン世代には普通のことなんだが、rubyでどうやるか難儀した。
普通にgetcするとSTDIN.getcしろと出るのでそうするのだが、enterキーを押さないと処理されない。
enterキーは余計なんだが、といいつつググるのだが全然解決策がヒットしない。
仕方ない perl でやるかとググると、system stty rawする必要があると分かった。
なんだターミナルの問題だったのか、rubyでも出来るじゃん。ホッ。
私は高校2年生で、一昨日rubyを自分で勉強し始めたばかりのruby初心者です。今、enterで処理されるプログラムを書いているのですが、これをなんでもキー1文字が入力されたら処理されるプログラムにしたくてていろいろ調べています。いろんなサイトを見るのですが、どうすればいいのか何を使えばいいのかよくわからなくて、もしよろしければ教えていただけないでしょうか。
突然で、わかりにくい文章で申し訳ありません。お時間があれば返信よろしくお願い致します。
端末開いてsystem stty rawとコマンド入力してからrubyプログラムを動かすとgetcが期待通りに動きます。
GUIを使う場合や、Windowsの場合は分かりません。