none
Console出力が出ません RRS feed

  • 質問

  • Vista(SP1)、VS2008 Express Edition C#です。

     

    Console.WriteLine(”test”);

    の出力は、コマンドプロンプトに出るはずですが、どうすれば確認できますか。

     

    コマンドプロンプトを開いておき、プログラムをデバッグ開始して、

    Console.WriteLine(”test”);

    を実行しても何も出力されません。

    なおコマンドプロンプトのdirはユーザのホームになっています。

     

    初歩的質問ですがよろしくお願いします。

     

    2008年12月22日 11:18

回答

  • Console.WriteLine("Test"); だけだとすぐに終了しちゃうので、その後に
    System.Console.ReadLine();も忘れずに。

    2008年12月22日 13:05
    モデレータ
  • IDEからの場合、SurferOnWwwさんが書かれているように「デバッグなしで開始」の場合はすぐに終了せず、入力待ちの状態で止まってくれます。

    デバッグ実行したい場合は、trapemiyaさんが書かれているようにReadLineを仕込んでおくか、終了する直前でブレークポイントを置く等の工夫が必要です。

     

    最終的にそのexeをダブルクリックしたときに表示が残って欲しいのであれば、ReadLineを仕込んでおくのが妥当でしょうか。

     

     

    ReadLineはユーザからの入力を一行求めるものです。

    Enterキーが押されるまでは終了しないのでその性質を利用して、表示内容を見る隙を与えようというアプローチです。

    ユーザには「Enterキーで終了します」とでも表示しておくといったところでしょうか。

    2008年12月22日 13:29
    モデレータ
  • こんばんは!(^^)!ふ~です。

     

    最近、難しい内容ばかりで、。。。これは、私も最初考えました。

    Console.WriteLine(”test”);

    『デバッグ開始』でプログラムを実行すると、コンソールが開いて

    メッセージを表示したかと思うと、消えてしまいます。

     

    しかし、『デバッグなしで開始』で、プログラムを実行すると、

    コンソールは開いて、メッセージを表示し続けています。

     

    少し不便ですので、私が、良く使うのは、

      

    Code Snippet

    using System.Diagnostics;

     

       // 出力ウインドウに表示する。
       Debug.WriteLine("test");

     

       // ポップアップ表示する。
       MessageBox.Show( "test", "Title" );

     

     

    などを使ってます。

    また、ツールボックスのメニューの中に『EventLog』というコントロールが有り、

    Formに貼り付け、ログ情報を取ったりもしています。(やや難しい)

     

    EventLogの取り方、最後に簡単な例がございます。

    http://msdn.microsoft.com/ja-jp/library/system.diagnostics.eventlog(VS.80).aspx

    2008年12月22日 14:32

すべての返信

  • コマンドプロンプトから実行ファイルを直接起動した場合は

    出力されると思います。


    # Windowsアプリケーションの場合は
    「表示」メニューの「出力」メニューをポイントして

    [出力] ウィンドウを表示してください。

    [出力] ウィンドウ

    http://msdn.microsoft.com/ja-jp/library/3hk6fby3.aspx

    2008年12月22日 11:41
  • 「コマンドプロンプトに出る」わけではありません。コマンドプロンプトを起動してや
    る必要もありません。

     

    [ファイル]→[新しいプロジェクト]で[コンソールアプリケーション]を選択して新し

    いプロジェクトを作成し、自動生成されるコードの Main の { と } の間に

     

    Console.WriteLine("Test");

     

    と記述して、[デバッグ]→[デバッグなしで開始](または、[デバッグ開始])して

    やれば Console が自動的に開いて Test と表示されるはずです。

    2008年12月22日 11:55
  • Console.WriteLine("Test"); だけだとすぐに終了しちゃうので、その後に
    System.Console.ReadLine();も忘れずに。

    2008年12月22日 13:05
    モデレータ
  • IDEからの場合、SurferOnWwwさんが書かれているように「デバッグなしで開始」の場合はすぐに終了せず、入力待ちの状態で止まってくれます。

    デバッグ実行したい場合は、trapemiyaさんが書かれているようにReadLineを仕込んでおくか、終了する直前でブレークポイントを置く等の工夫が必要です。

     

    最終的にそのexeをダブルクリックしたときに表示が残って欲しいのであれば、ReadLineを仕込んでおくのが妥当でしょうか。

     

     

    ReadLineはユーザからの入力を一行求めるものです。

    Enterキーが押されるまでは終了しないのでその性質を利用して、表示内容を見る隙を与えようというアプローチです。

    ユーザには「Enterキーで終了します」とでも表示しておくといったところでしょうか。

    2008年12月22日 13:29
    モデレータ
  • こんばんは!(^^)!ふ~です。

     

    最近、難しい内容ばかりで、。。。これは、私も最初考えました。

    Console.WriteLine(”test”);

    『デバッグ開始』でプログラムを実行すると、コンソールが開いて

    メッセージを表示したかと思うと、消えてしまいます。

     

    しかし、『デバッグなしで開始』で、プログラムを実行すると、

    コンソールは開いて、メッセージを表示し続けています。

     

    少し不便ですので、私が、良く使うのは、

      

    Code Snippet

    using System.Diagnostics;

     

       // 出力ウインドウに表示する。
       Debug.WriteLine("test");

     

       // ポップアップ表示する。
       MessageBox.Show( "test", "Title" );

     

     

    などを使ってます。

    また、ツールボックスのメニューの中に『EventLog』というコントロールが有り、

    Formに貼り付け、ログ情報を取ったりもしています。(やや難しい)

     

    EventLogの取り方、最後に簡単な例がございます。

    http://msdn.microsoft.com/ja-jp/library/system.diagnostics.eventlog(VS.80).aspx

    2008年12月22日 14:32
  • こんにちは。中川俊輔 です。

     

    皆様、たくさんの回答ありがとうございます。

     

    C#の初心者ですさん、フォーラムのご利用ありがとうございます。

    その後いかがでしょうか?出力はうまく表示されましたか?

    勝手ながら、有用な情報と思われる回答へ回答済みチェックをつけさせていただきました。

     

    今後ともフォーラムをよろしくお願いします。

    それでは!

    2009年1月6日 9:38