- ベストアンサー
Visual StudioでDOS窓以外に出力する方法は?
Visual Studio 2008 を使って、プログラミングの勉強をしてます。 まだコンソールアプリだけで、フォームアプリの勉強には入って いません。 ですので、出力は Console.WriteLine を使ってますけど、これで プログラムを実行すると、DOS窓に出力されます。結果を見るだけなら それでもいいんですけど、DOS窓からはクリップボードにコピーが 出来ないので、たとえば出力結果をこの掲示板に載せて質問したい 時とかは、自分でそれを見ながら打ち込まなければなりません。 DOS窓を開いて exe ファイルを叩いて実行すれば、ファイルに リダイレクト出来るのは分るんですけど、ディレクトリを移動する だけでも面倒ですし、プロジェクトごとにディレクトリが変わるので PATH を切っておく方法も使えません。Visual Studio から実行した 出力結果を、ファイルに出す方法ってありますでしょうか? 今はプロジェクトを作る時に「空のプロジェクト」を選んで、 「コードファイル」を追加してソースコードを打ち込んでます。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
コードの変更を最小に留めるなら最初の方でConsole.SetOut Console.SetOut(new StreamWriter(FileStream("stdout.txt", FileMode.Create))); てかDOS窓からコピーできますけど、右クリックから範囲指定選べば
その他の回答 (3)
- himajin100000
- ベストアンサー率54% (1660/3060)
コピーは右クリックで行なう(コンテキストメニューは確か出なかったかと)>コマンドプロンプト >DefaultTraceListner 多分,原因はスペルが間違っている事 Listener ○ Listner × #しっかし,Console.SetOutには気づかなかったなあ
お礼
ありがとうございます。初歩的ミスですみません(^^ゞ でも・・ 型または名前空間名 'DefaultTraceListener' が見つかりませんでした。using ディレクティブまたはアセンブリ参照が不足しています。 になってしまいました。 他の、たとえば Console.WriteLine とかだと、途中まで打ってると 候補がいくつか出て来て選択出来るようになるのに、Default・・・ は打っていても合う候補が出て来ません。 using System.Diagnostics; 以外に、追加しなければならない using は無いでしょうか?
- eroermine
- ベストアンサー率18% (83/444)
DOS窓からクリップコピーする方法は出たようなので Window出力する最小プログラムを下に。 クリップボードにコピーするには Ctrl + C #include <windows.h> int WinMain(HINSTANCE hInstance, HINSTANCE prev_hInstance, PSTR szCmdLine, int iCmdShow) { MessageBox(NULL,"Hello Wrold","info", MB_OK); }
お礼
ありがとうございます。 えーっと、これは・・ #include <windows.h> っていうのは、 using System; の直後に書いて、残りの int WinMain(以下略) の部分を public static void Main() {} の中に書くんでしょうか? それとも、WinMain は Main() の外に書くんでしょうか? 私がまだ全然勉強してない文法みたいで、解りません・・ すみません・・・。
- himajin100000
- ベストアンサー率54% (1660/3060)
未検証。 System.Diagnostics.Debug や System.Diagnostics.Trace http://dobon.net/vb/dotnet/programing/tracelisteners.html を使う手は取れるかなぁ? オマケ: http://www.relief.jp/itnote/archives/002157.php
お礼
ありがとうございます。 教えて頂いたページに載っている方法を試したんですけど、 コンパイルエラーになってしまいました。 型または名前空間名 'DefaultTraceListner' が見つかりませんでした。using ディレクティブまたはアセンブリ参照が不足しています。 だそうです。もちろん、プログラムの先頭で using System; using System.Diagnostics; と宣言してます。 何がいけないのでしょうか? 使ってる開発環境は Microsoft Visual C# 2008 です。
お礼
>てかDOS窓からコピーできますけど、右クリックから範囲指定選べば はい、その通りでした(-_-;) って、やってみたら、選択した後で右クリック→コピーをしようと 思うと右クリックした途端に選択範囲がクリアされてします・・・ と思ったら、Ctrl+C でコピーすればいいんですね。 C以前に、基本的な Windows の操作が分かってなくてすみません。 ありがとうございました。