スポンサーリンク
※サイト運営にサーバーは必須です※
~このサイトもエックスサーバーを使用しています~
目次
コンソールが一瞬で消える時の2つの解決方法
Visual Studioで作成したコンソールアプリケーションが一瞬で閉じる場合、以下のようにすれば、解決します。
解決方法1:デバッグなしで実行(Ctrl+F5)
プログラムを実行する際に、デバッグの開始(F5)でなく、デバッグなしで実行(Ctrl+F5)を使用します。
※ショートカットキーを使わない場合は、上のタブの「デバッグ」から「デバッグなしで実行」を選択する。
注意:コードを実行する方法には、緑色の△ボタンを押す方法も考えられます。しかし、これは(Ctrl+F5)でなく、F5に対応しています。そのため、この△を押しても、コンソールアプリケーションが一瞬で閉じる問題に対しては無力です。
※下図、赤枠に囲まれているボタンのことです。
Ctrl+F5で実行すれば、最後に「続行するには何かキーを押してください . . .」と表示されるようになります。
ただし、このやり方は、以下の2点で注意しないといけません。
1:Ctrl+F5で実行ファイル(exeファイル)を生成したとしても、その実行ファイルは、「続行するには何かキーを押してください . . .」が表示されません。つまり、結果物として得られるexeファイルの挙動は、最後で止まるか止まらないかの観点において、Ctrl+F5とF5に違いはありません。
※デフォルトの設定では「bin\Debug」(出力パス)の下に実行ファイルが生成されます。
2:説明に書いてある通り、デバッグは行われません。つまり、F9を押して、ブレイクポイントを置いても無視されます。
解決方法2:プログラムの最後にConsole.ReadKey();を書き加える。
Console.ReadKeyメソッドは、ユーザーが入力したキーを読み取るために使われます。
例えば、Enterキーを押したら「Enter」を読み取ります。Aボタンを押したら「A」を読み取ります。
このことをうまく利用してあげます。
Console.ReadKey();と書けば、ユーザーが何かしらのキーを押さない限り、プログラムが終わりません。逆に言えば、何かしらのキーが押されたら、Console.ReadKeyメソッドの処理は終了して、コンソールが閉じます。
※Console.ReadKeyメソッドの使い方:Console.ReadKeyメソッドの使い方について
代替方法
Console.ReadKey();の代わりにConsole.ReadLine();を使う方法も考えられなくはありません。
Console.ReadLineメソッドは、ユーザーが入力した文字列を1行読み取るために使われます。
そのため、Console.ReadKeyメソッドと同様に、ユーザーのキー入力を待つので、プログラムの処理をいったん止めることができます。
しかし、Console.ReadKeyメソッドと異なり、Console.ReadLineメソッドは、Enterキーが押されるまで、入力キーを何度でも受け入れることができます。
そのため、何かしらのキーを押したらコンソールを閉じるという目的を達成するには、やや不適切になります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleStop01 { class Program { static void Main(string[] args) { //実行すると一瞬でコンソールが落ちる場合は「Ctrl+F5」で実行 Console.WriteLine("Hello"); /*「Ctrl+F5」を使わない場合*/ //入力されたキーを読み込む Console.ReadKey(); //代替方法 //ユーザーが入力した文字列を1行読み込む //Console.ReadLine(); } } } |
関連記事
~プログラミングを勉強してみませんか?~
TechAcademy [テックアカデミー] は無料の体験講座が用意されているので、気軽に体験できます。
※私(サイト主)も無料体験講座を実際に受けてみました(→感想)