web-dev-qa-db-ja.com

Visual Studioでstderrとstdoutをキャッチする方法はありますか?

Visual Studioでstdoutとstderrをキャッチする方法はありますか?たとえば、私が使用するとき

cout <<"Hello world!"<< endl;

黒いウィンドウが表示されたり消えたりします。とても速いので見えません。 IDEには出力セクションがありますが、ビルドなどから表示出力を選択することしかできませんが、stdoutを選択することはできません。

不正行為の解決策は多分呼び出す

system("pause");

しかし、それは正しく聞こえません。オプションで検索しましたが、アイテムが見つかりません。

誰かアイデアがありますか?ありがとう。私はVSを使い始めたばかりで、以前はLinuxを使用していました。

21
YankeeWhiskey

「デバッグの開始」コマンドを使用するのではなく、出力を確認する場合は、「デバッグなしで開始」を使用します。それが一般的に私がそれを扱う方法です。コマンドプロンプトウィンドウは、閉じるまで表示されたままになります。クラッシュなどが発生した場合は、いつでもVisual Studioをプロセスに再接続するか、[デバッグの開始]を使用して実行できます。

8
Nicol Bolas

[プロジェクトのプロパティ]-> [リンカー]-> [システム]-> [サブシステムをコンソールに変更]に移動します。

5
Iceman

Stdin/errストリームを実際にリダイレクトしようとせずに、試すことができるいくつかの代替手段があります。

  • コマンドプロンプトウィンドウを開き、実行可能ファイルが作成されるディレクトリにcdして、そこから実行します。
  • おそらく、std :: cin.get();のようなものを使用してみてください。またはstd :: cin.ignore(std :: cin.rdbuf()-> in_avail()+ 1); system( "pause")の代わりに。
  • OutputDebugString を介してVisualStudioデバッガーで出力を表示します
1