結論
Console.ReadKey()メソッドか使える。
Windowsのコンソールのバッファリングについて
netcatとかUNIX/Linuxのコマンド履歴が記録できるscriptコマンドのようなシェルのラッパーなどのコンソールプログラムを開発するうえで、時折問題になるのが、Windowsのコンソールでは、キー入力を「リターン」キー入力までバッファリングしてしまいプログラムにまで落ちてこないこと。
(まぁ、これはこれで使い勝手が有効な場面もあるのだけど・・・)
.NET FrameWorkでは、Console.ReadKey()メソッドがあるので、バッファリングなしでキー入力を取得したい場合に使えますよ。...ということ。
while (true) {
ConsoleKeyInfo info = Console.ReadKey();
Console.Write(info.KeyChar);
}
結果は、こんな感じで「Hello」と入力したのだが、キー入力と同時に出力されていることからバッファリングされていないことが分かる
C:\>ConsoleApp1.exe
HHeelllloo
その他
多分、他の方法もあるとは思う。
以上
↧