• ベストアンサー

VisualC++6.0でのprint文の表示について

VisualC++6.0で、新規にコンソールでないプロジェクトを作った場合、print文はどこに表示されるのでしょうか? コンソールアプリケーションならそのままコンソールにでるのですが、例えば[Win32 Application]でプロジェクト作成し、<stdio.h>をインクルード後、適当なメインループにprintf("hoge\n");とした場合の出力窓がどこかわかりません。どこで確認すればよいのでしょうか? PS) もし、print文でみれないならデバッグで出す値の履歴はどこでみたらよいのでしょうか? 初歩的な質問ですが・・よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • sha-girl
  • ベストアンサー率52% (430/816)
回答No.1

デバッグ出力には APIの::OutputDebugString(str)を使います。 OutputDebugString("hoge\n"); ただしこれはprintfのように可変引数をとれません。 またrelease版の時には削除するように工夫する必要があります。 printfのように使いたいなら_vsntprintfを使って文字列を加工し ::OutputDebugString()に渡すとよいでしょう。 http://www.doumo.jp/postgretips/tips.jsp?tips=45 MFCあるいはATL等を使っているなら TRACE(...)で可能です。printfのように扱えます。 こちらはRelease版ではコンパイルされないようになっています。

usagiya
質問者

お礼

丁寧な回答ありがとうございました。 無事解決しました^^

関連するQ&A

  • VISUALC++6.0スタンダード版について

    プログラミングのレポートがでたのですがVISUALCは使ったことがなくてさっぱりわかりません。BORLANDCをつかって勉強したことがかなり昔にあるんですがその時はファイル新規作成してプログラムをうって実行させるとエラーまたは結果がでてました。でもVISUALCだとプロジェクトやらなんやらさっぱり解かりません。適当にしてるとファイルがないとかエラーがでるわけないのにエラーが出たりとか実行結果が出なかったりとわけわかりません。プログラミング自体ほとんど初心者です。3乗根をN-R法で求めるプログラムを直ちにつくらないといけないのですがVISUALCの使い方がさっぱりわからず焦ってます。とりあえず #include<stdio.h> int main() { printf("rarara\n"); } というプログラムさせ動かし方がわかりません。 どなたかアドバイスおねがいします。説明書読んでも分厚すぎるし時間がないしで メチャ困ってます。初心者でホントすいませんがおねがいします

  • visualC++を使って、

    visualC++を使って、 ---------------------- 上線の長さは?:8 下線の長さは?:12 縦線の長さは?:3 太さは?:2   ********   ********      **      **      ** ************ ************ ---------------------- ・・・と入力した値に対して「*」を使って「工」という文字の図形が現われるプログラムを作る課題なのですが・・・ とりあえず、試行錯誤をした結果 #include <stdio.h> void main() { int a,b,c,d,e,f,g,h; printf("上線の長さは?"); scanf("%d", &a); printf("下線の長さは?"); scanf("%d", &b); printf("縦線の長さは?"); scanf("%d", &c); printf("太さは?"); scanf("%d", &d); for(e=1; e<=a; e++){ for(h=1;h<=d; e++) printf("*"); printf("\n"); } for(f=1;f<=c; f++){ for(h=1;h/2<=d; h++) printf(" "); for(h=1;h<=d; h++) printf("*"); } for(g=1; g<=b; g++){ for(h=1; h<=d; h++) printf("*"); printf("\n"); } と書いたのまではいいのですが、いざデバッグすると*が無限に現われてしまいます・・・。 C言語なんて今までやったことがない自分には難しくて・・・どうかご教授お願いします。

  • printf文で"という文字を出力したい

    #include <stdio.h> #include <stdlib.h> #include <string.h> main() { printf("a"b"c\n"); } 標準出力でa"b"cと出力したいのですが、エラーが出てしまいます。 printf文で"を出力することは可能なのでしょうか。 教えてください、お願いします。

  • 簡単なfor文

    #include <stdio.h> int main(void) { int n; int i; for(n=0 ;n<10;n++){ for(i=0; i<=n ;i++){ printf("*"); } printf("\n"); } return(0); } こういったプログラムを実行すると、以下のように表示されるのですがなんででしょうか? * ** *** 以下略 自分の考えですと、*は毎回一つしか表示されずに改行されると思うのですが・・・ * * * * 以下略 i個分の*を表示するなどという指示をプログラムはなされていないと思うのですがなぜなんでしょうか? 一つ目のfor文では10回ループが繰り返され改行 二つ目のfor文で*を永遠に表示 といった僕の解釈ではおかしいですよね。 当方C言語初心者で、周りに聞く人がいないため教えていただけると非常に助かりますm(__)m

  • VisualC++ ビルド失敗

    #include<stdio.h> int main(){ printf("Hello World\n"); return 0; cin.ignore(); } >>cin.ignore(); これで画面がすぐに消えないようにしたいのですが、定義されてない識別子と出ます。 教えてください・・・よろしくお願いします。

  • プログラミングで質問です。言語はC++です。

    いま、 While文でループし、Enterキーを おすとループから抜けます。 そこで、上矢印キー↑を押すと マウスカーソルがそれに応じて動くようなプログラムを while文でループさせたいのですが やり方がわかりません。 途中まで書いてみたのですが動きません。 詳しく教えていただけると嬉しいです。 #include <stdio.h> #include <windows.h> #include <Windows.h> int main( void ) { printf("roop in\n"); POINT po; while(1){ po.x=0; po.y=0; if( GetAsyncKeyState(VK_RETURN)) break; if(GetAsyncKeyState(VK_UP)&0x8000 <0) po.x+=7; Sleep(500); } printf("roop out\n"); return 0; }

  • 【VS2008 C++】2つのプロジェクト間で共通の関数を使いたい

    【VS2008 C++】2つのプロジェクト間で共通の関数を使いたい WindowsXP上で visual studio 2008 C++ express editionを 使用しています。 1つのソリューションに2つのプロジェクトをつくり、 その2つに共通の関数を使用させたいのですが、どのように 設定すればよいか教えて頂けませんでしょうか。 ソースの内容は以下のとおりです。 具体的には、mainB.cppでcommon.cppの関数を 呼び出したいです。 //common.cpp #include <stdio.h> void showCommon(){ printf("---common-----\n"); } //common.h #include<stdio.h> void showCommon(); //mainA.cpp #include<stdio.h> #include "common.h" void main(){ printf("---mainA-----\n"); showCommon(); } //mainB.cpp #include<stdio.h> #include "common.h" void main(){ printf("---mainB-----\n"); showCommon(); }

  • ピラミッド表示プログラム。

    ピラミッドを表示させるプログラムを考えています。 例えば3段の場合   *  *** ***** っというような表示です。 #include <stdio.h> void spira(int n); main() { int a; printf("段数は:"); scanf("%d",&a); spira(a); } void spira(int n) { int i,j=1,a,b,k; for(a=n;a>0;a--){ for(b=a-1;b<=n;b--){ printf(" "); } k=(j-1)*2+1; for(i=1;i<=k;i++){ printf("*"); } j++; printf("\n"); } } このように考えてみたのですが、無限ループになって表示できません。 どこが悪いでしょうか? 無限ループの原因はどうやったら解消されるでしょうか?

  • VC++2005EEにて不可解な挙動

    int j = 0; for( ; ; ){  printf( "%d ", j ); } printf( "hoge \n" ); 上記コードを無限ループで回したところ、表示されるのは 0の羅列ではなくhogeの羅列でした。 このような状況ってありえるのでしょうか? 環境はVisualC++2005 ExpressEditionです。 また、なぜかコンパイル中に上記のforのところで warning C4127: 条件式が定数です。 という警告が出ていましたがなぜでしょうか。

  • if文がコンパイルエラーを起こしてしまう…

    C言語の初心者です。 まだ始めて間もない中学生なのですが、タイトル通り、以下のようなif文をコンパイルすると、コンパイルエラーを起こしてしまいます。 何度も、やり直したのですが、どうしてもエラーが出ます。 何方か、「文が変だなぁ」とお気づきなさった方は、回答を頂けると、幸いです。 どうぞよろしくお願い致します。 とりあえず、本に習って、下の文を作成しました。 #include <stdio.h> main() {    int year; year = 14; /* 数字のところにあなたの年齢を入れてください。 */    if (year < 20)     {      printf("あなたはまだ、20を過ぎていないので、お酒は飲めません。\n");     }      else     {      printf("あなたは成人なので、楽しくお酒を飲むことが出来ます。\n");     }      if (year == 20)     {      printf("あなたは、今年成人式ですね。\n");     }      if (year >= 18 )     {      printf("あなたは結婚が出来る年齢ですね。\n");     } }

専門家に質問してみよう