C言語のプログラムの標準入力からの入力する際に、矢印↑のキーボードを押すと^[[と表示されます。
例えば、
というコードで 矢印上キーをおした際に、どういう処理になるのでしょうか。
知りたいことは、scanfが何か文字を読み込むが、フォーマットに合致しないので0を返すか(その際にバッファに文字列が残ってしまうのか)
そもそも^[[Aが特殊文字扱いで、scanfは^[[Aを無視して他の文字列をよみこもうとするのか
ということです。
また、矢印上キーからの変な入力を無視する方法はあるのでしょうか。
Overstackflowのサイト(http://stackoverflow.com/questions/2138 ... arrow-keys)で、
同じような質問があったのですが、プログラム自体から無視できるように設定するのはできないようでした(Linuxの設定で変更可能?)
環境はCent OS 6を使っています。
お願いします。
^[[A を無視する方法
Re: ^[[A を無視する方法
scanf は、書式の "%d %d %d" で変換できた個数を返します。kodaill さんが書きました:知りたいことは、scanfが何か文字を読み込むが、フォーマットに合致しないので0を返すか(その際にバッファに文字列が残ってしまうのか)
"%d" と 1個なら、1 か 0 を返しますが、EOF(-1)の場合もあります。
読まなかった文字は、標準入力バッファに残ります。
不正な文字を読み飛ばせばよいのでは?kodaill さんが書きました:また、矢印上キーからの変な入力を無視する方法はあるのでしょうか。