コンソールアプリケーションは、コンピュータを高度に使いこなしている人には好まれますが、一般的には使用しません。 その為、プログラミング言語を学ぶ際に初めて利用する方も多いかと思います。C#で、コンソール画面への文字出力とキーボードからの入力の取扱に関することをここにまとめておきます。
リテラル
「リテラル」という用語は、C#で使われる場合、人の読める形で表現される固定の値のことを示しています。文字列や数値のことを理解せておけば問題ありません。
名前空間
使用する名前空間は「System」です。
using System;
コンソール画面への出力
文字列を出力するときは、二重引用符「"」で囲みます。
Console.WriteLine("何かキーを押すと終了します。");
変数の内容を出力するときは、変数名をそのまま記述します。
Console.WriteLine(a);
エスケープシーケンス
文字リテラルを引用符「'」で囲めば、ほとんどの文字を表記できます。しかし、改行文字などの特殊な意味を持つ文字は、そのまま表現できません。その為、エスケープシーケンスと呼ばれる代わりの表現が用意されています。
エスケープシーケンス | 説明 |
---|---|
\a | 警告(ベル) |
\b | バックスペース |
\f | ページ送り |
\n | 改行(ラインフィード) |
\r | 復帰 |
\t | 水平タブ |
\v | 垂直タブ |
\0 | ヌル文字(値0のchar型データ) |
\’ | 引用符(シングルクォーテーション) |
\” | 2重引用符 |
\\ | \\ |
逐語的文字列リテラル
2重引用符で囲まれた文字列リテラルの前にアットマーク「@」を表記すると、2重引用符でカカオ魔れた文字列リテラルがそのまま出力されます。 改行やタブなども文字列に含めることができ、エスケープシーケンスに変換する必要がありません。
コンソールに出力する文字に色を付ける
コンソールに出力する文字には、色や背景色を指定することができます。
指定する色は、「ConsoleColor 列挙型」で指定します。
名前空間は、Systemです。
前景色(文字色)は、「Console.ForegroundColor」で、背景色は、「Console.BackgroundColor」で指定します。
メンバー名 | 色 |
---|---|
Black | 黒 |
Blue | 青 |
Cyan | シアン (青緑) |
DarkBlue | 濃い青 |
DarkCyan | 濃いシアン (濃い青緑) |
DarkGray | 濃い灰色 |
DarkGreen | 濃い緑 |
DarkMagenta | 濃いマゼンタ (濃い赤紫) |
DarkRed | 濃い赤 |
DarkYellow | 濃い黄色 (黄土色) |
Gray | 灰色 |
Green | 緑 |
Magenta | マゼンタ (赤紫) |
Red | 赤 |
White | 白 |
Yellow | 黄色 |
例:
Console.ForegroundColor = ConsoleColor.Yellow;
キーボードからの入力
「Console.Read()
キーボードからの入力は、「Console.Read()」を使用します。
「Console.Read()」では、キー入力は、Enterキーを押すとそれまでのキー入力がまとめて得られます。
Console.Read();
変数に格納する場合は、予め変数を作成しておき、変数に代入します。「Console.Read()」で取得される値は、整数値なので、char型など他の型の変数に格納する場合は、キャスト操作が必要です。
char ch;
ch = (char)Console.Read();
「Console.Read()」は、Enterが入力されるまで入力された文字が読み込まれません。そのことでプログラムの動作に不具合があるような場合では、「Console.ReadKey()」を使用します。
Console.ReadKey()
「Console.ReadKey()」では、キーが押されるたびに、入力されるキーの情報を得ることができます。
コンソールに入力したキーが表示されます
Readkey()
コンソールに入力したキーが表示されません。
Readkey(bool noDisplay)
IDEから実行する場合にコンソールをアプリケーションの終了とともに閉じないためのコード
IDEから、コンソールアプリケーションをVisual Sutudioから実行すると、アプリケーションの終了とともに、コンソールウインドウが閉じてしまい、きちんと出力されているかかくにんできません。 そこで、アプリケーションの最後にキー入力を要求すると、キー入力が行われるまで、アプリケーションが終了しないので、出力された文字列をゆっくり確認することができます。
// コンソールが自動で閉じないための処理
Console.WriteLine("\n");
Console.WriteLine("何かキーを押すと終了します。");
Console.ReadKey();
Visual Sutudio、実行する時、CTRLキー+F5で実行するとコードを追加しなくても、コンソールが閉じてしまうことはありません。
このコードを追加する方法の他に、プロジェクトのプロパティで、出力の種類に、「コンソールアプリケーション」を指定する方法があります。