C# 入出力の基礎:ユーザー入力と出力の基本をマスター
C# 入出力の基礎
このガイドでは、C# の核となる入出力技術を解説し、ユーザーデータの読み取りと結果の表示を確実に行う方法を紹介します。
C# 出力
コンソールにデータを書き出すには、C# では主に以下の 2 つのメソッドを使用します:
System.Console.WriteLine()
System.Console.Write()
ここで System は名前空間、Console はその名前空間内のクラス、WriteLine と Write はそのメソッドです。
例 1:WriteLine() で文字列を出力
using System;
namespace Sample {
class Test {
public static void Main(string[] args) {
Console.WriteLine("C# is cool");
}
}
}
実行結果:
C# is cool
WriteLine() と Write() の違い
WriteLine() は指定されたテキストを出力して改行しますが、Write() は改行せずにテキストを出力します。
例 2:WriteLine() と Write() の使い分け
using System;
namespace Sample {
class Test {
public static void Main(string[] args) {
Console.WriteLine("Prints on ");
Console.WriteLine("New line");
Console.Write("Prints on ");
Console.Write("Same line");
}
}
}
出力:
Prints on New line Prints on Same line
変数とリテラルの出力
WriteLine() と Write() は変数やリテラルの両方を表示できます。
例 3:変数とリテラルの出力
using System;
namespace Sample {
class Test {
public static void Main(string[] args) {
int value = 10; // 変数
Console.WriteLine(value); // リテラル
Console.WriteLine(50.05);
}
}
}
結果:
10 50.05
+ 演算子による文字列連結
出力時に + 演算子を使って文字列を結合できます。
例 4:連結出力
using System;
namespace Sample {
class Test {
public static void Main(string[] args) {
int val = 55;
Console.WriteLine("Hello " + "World");
Console.WriteLine("Value = " + val);
}
}
}
結果:
Hello World Value = 55
フォーマット文字列:よりクリーンなアプローチ
フォーマット文字列を使用すると、実行時に置き換わるプレースホルダーを埋め込めるため、可読性が向上しエラーが減ります。
例えば、以下のように書く代わりに:
Console.WriteLine("Value = " + val);
以下のように書けます:
Console.WriteLine("Value = {0}", val);
ここで {0} は val のプレースホルダーです。複数の変数には追加のプレースホルダーを使用します。
例 5:文字列フォーマットの使用
using System;
namespace Sample {
class Test {
public static void Main(string[] args) {
int firstNumber = 5, secondNumber = 10, result;
result = firstNumber + secondNumber;
Console.WriteLine("{0} + {1} = {2}", firstNumber, secondNumber, result);
}
}
}
出力:
5 + 10 = 15
この方法は手動での連結よりも可読性が高く、エラーも起きにくいです。
文字列フォーマットの詳細は「C# 文字列フォーマット」を参照してください。
C# 入力
ユーザー入力を取得する最も簡単な方法は Console.ReadLine() です。より細かい入力には Read() と ReadKey() も利用できます。
例 6:ユーザーから文字列を読み取る
using System;
namespace Sample {
class Test {
public static void Main(string[] args) {
string testString;
Console.Write("Enter a string - ");
testString = Console.ReadLine();
Console.WriteLine("You entered '{0}'", testString);
}
}
}
出力:
Enter a string - Hello World You entered 'Hello World'
ReadLine()、Read()、ReadKey() の理解
- ReadLine():入力ストリームから 1 行全体を読み取り、文字列として返します。
- Read():次の文字を読み取り、その ASCII 値を返します。
- ReadKey():Enter キーを待たずにキー入力を取得します。一時停止プロンプトなどに便利です。
より詳細については、StackOverflow の「Console.Read() と Console.ReadLine() の違い」を参照してください。
例 7:Read() と ReadKey() のデモ
using System;
namespace Sample {
class Test {
public static void Main(string[] args) {
int userInput;
Console.WriteLine("Press any key to continue...");
Console.ReadKey();
Console.WriteLine();
Console.Write("Input using Read() - ");
userInput = Console.Read();
Console.WriteLine("Ascii Value = {0}", userInput);
}
}
}
出力:
Press any key to continue... x Input using Read() - Learning C# Ascii Value = 76
ReadKey() は押されたキーを即座に表示しますが、Read() は 1 行を取得し、最初の文字の ASCII コードのみを返します(ここでは 'L' の 76)。
数値の読み取り
文字列は直接読み取れますが、数値型には変換が必要です。Convert クラスが直感的なメソッドを提供しています。
例 8:ユーザー入力を数値に変換
using System;
namespace UserInput {
class MyClass {
public static void Main(string[] args) {
string userInput;
int intVal;
double doubleVal;
Console.Write("Enter integer value: ");
userInput = Console.ReadLine();
intVal = Convert.ToInt32(userInput);
Console.WriteLine("You entered {0}", intVal);
Console.Write("Enter double value: ");
userInput = Console.ReadLine();
doubleVal = Convert.ToDouble(userInput);
Console.WriteLine("You entered {0}", doubleVal);
}
}
}
結果:
Enter integer value: 101 You entered 101 Enter double value: 59.412 You entered 59.412
Convert クラスの ToInt32() と ToDouble() メソッドで、入力文字列を目的の数値型に変換します。変換メソッドの完全な一覧は .NET ドキュメントで確認できます。
代替的な数値入力戦略については「ユーザー入力から整数を読み取る」を参照してください。
C言語
- Raspberry PiとPythonでリモート温度センサーを構築 – ステップバイステップガイド
- MCP3008 ADCでRaspberry Piにアナログセンサーを接続 - 配線、SPI設定、サンプルPythonコード
- Nucleus SEのメールボックス:設定と使用の実践ガイド
- Nucleus SEのセマフォ:概要、設定、API要点
- Nucleus SEのキュー:導入とコアサービスコール
- 広がるクラウドの地平:新ゾーン、コンテナ、マルチクラウド戦略
- Cloud Linuxが共有ホスティングのセキュリティ、安定性、パフォーマンスを向上させる理由
- C++入出力完全ガイド:cin/coutの基本から複数入力まで
- C言語入出力(I/O)マスター:scanf()とprintf()徹底解説
- Python I/Oとモジュールインポート完全マスター: 実践ガイド
- Java入出力をマスター:表示、読み取り、データフォーマット