CRを何とかしたい
処理によっては普通にgetcharするとCRを読み込んじゃって困ることがあるかもしれない.
getcharとかで入力を取得する方法だと,ユーザは端末でいろいろ編集したりしてからリターンを押すことができる.これをカノニカルモードという.逆に入力文字を即座にアプリケーションが取得していろいろするのを非カノニカルモードという.で,カノニカルモードだと,リターンを押さないと入力がアプリケーションに伝わらないので,リターンキーを押すのだが,このとき,アプリケーションではリターンキーの割り込み文字CRLF(キャリッジリターンとラインフィード)がCRに変換されて渡される.aと入力してもaCRが渡される.
aと入力してもaCRが渡されるのだから,以下のソースはまずい.
こいつをコンパイルして実行すると,以下のようになる.
getcharをループで回しただけでした.
a input = a input = b input = b input = q input = q確かにCRが渡っているようだ.で,これを直したい.つまりこんな結果にしたい.
a input = a b input = b q input = qで,こうしてみた.

