Readメソッドを使うと標準入力から1文字ずつ読み込むことができます。 ReadメソッドはReadLineメソッドとは異なり、改行文字もそのまま読み込まれます。 Readメソッドは読み込んだ文字をchar/Char型の範囲の数値(int/Integer型)として返すため、文字として参照する場合は戻り値をChar型にキャストします。 標準入力から読み込める文字列がなくなった場合やCTRL+Zによって入力を中断した場合、Readメソッドは-1
を返します。
Console.Readメソッドで標準入力から1文字ずつ読み込んで標準出力に書き込む
using System;
class Sample {
static void Main()
{
while (true) { // 無限ループ
// 標準入力から一文字読み込む
int ch = Console.Read();
if (ch == -1) {
// 読み込める文字列が無くなった
break;
}
else {
// 読み込んだ文字にかっこを付けて標準出力に書き込む
char c = (char)ch;
Console.Write("<{0}>", c);
}
}
}
}
キー入力を使った場合の実行例
>sample.exe f<f>o<o>o<o> < >b<b>a<a>r<r> < > ^Z
ReadLine, Readメソッドではキー入力された文字はそのままコンソールウィンドウにも表示されます(エコーバックされる)。 キー入力を表示したくない場合、エコーバックしないようにしたい場合はReadKeyメソッドを使うことができます。
ReadKeyメソッドの使用例はエコーバックせずに文字列を入力する(Console.ReadKey)をご覧ください。