スポンサーリンク
※サイト運営にサーバーは必須です※
~ ロリポップ! はコスパのよい初心者向けサーバーです~
目次
コンソールが一瞬で消える時の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(); } } } |
関連記事
~ギャンブルに絶対儲かる必勝法があるのだろうか?~
私(サイト主)はこの疑問に対して非常に興味を持ち、プログラミングで検証してみました。
このサイトを応援してもいいかなと思う人はぜひとも購入を検討してみてください。