• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VC++ exeからはdatファイルが開けるのに、)

VC++ exeからdatファイルが開けるのに、VSのF5で実行した際には開けません

このQ&Aのポイント
  • VC++ exeからはdatファイルが開けるが、VSのF5実行で開けない問題が発生しています。
  • VS2010 ProのVC++、Win7環境で、Debugフォルダ内の「test.dat」ファイルがF5実行時に開けません。
  • Debugフォルダ内のexeァイルから実行すれば問題なく「test.dat」ファイルが開けるが、F5実行時は開けません。

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

  • ベストアンサー
  • hashioogi
  • ベストアンサー率25% (102/404)
回答No.4

フルパス指定でも良いけど…。 ALT+F7でVCのプロパティ ページが開ける。 VC2008では左側に「デバッグ」というのがあってそこを押す。 右側に「作業ディレクトリ」というのがあるので、そこにファイルがあるディレクトリを指定する。 これによればプログラムを修正する必要はない。

MKT_
質問者

お礼

 どうもありがとうございます!!m(_ _)m 開けました^^ ^^ ^^ VS2010にも同様の設定がございました。 この度は誠にありがとうございました!!!!!!m(_ _)m

その他の回答 (3)

  • maiko0318
  • ベストアンサー率21% (1483/6969)
回答No.3

>>warning : unrecognized character escape sequence おお、おもったとおりw \ ではなくて \\ にすれば直ると思います。

MKT_
質問者

お礼

 どうもありがとうございます!!m(_ _)m ¥→\\にいたしましたところ、エラーは消えましたがファイルをまだ開くことが出来ません。。。何故でございましょう(?_?)  ご親切にどうもありがとうございました!m(_ _)m

  • mk48a
  • ベストアンサー率56% (1133/2007)
回答No.2

VisualStutioから実行した場合のカレントディレクトリはexeの場所ではないですよ。 なので、ファイル名だけではアクセスできません。 以下の方法で確認してみてください。 http://rarara.cafe.coocan.jp/vc/vctips/api.htm exeと同じフォルダを指定したければ、実行形式のパスを取得してデータファイルのパスを作成してください。 実行形式のパスの取得方法も上記リンクに記載されています。

MKT_
質問者

お礼

>VisualStutioから実行した場合のカレントディレクトリはexeの場所ではないですよ。 なんとそうなのでございましたか。(・o・)勉強になります。どうもありがとうございますm(_ _)m  ご提示いただけた方法を使って   fstream fs(PATH & "test.dat", ios_base::in)のように しておけば、他のPCでも汎用性をもてるプログラムになるな~、などと考えてトライしておりますが、サイトをそのままコピペして >char szPath[_MAX_PATH]; >GetModuleFileName( NULL, szPath, MAX_PATH); としますと、コンパイル時にエラーが >error: argument of type "char *" is incompatible with parameter of type "LPWSTR" と出てまいりました。そこで、 >char szCurrentDir[_MAX_PATH];   ↓ >LPWSTR szCurrentDir[_MAX_PATH]; と書き換えてみたり、 >GetModuleFileName( NULL, szPath, MAX_PATH);   ↓ >GetModuleFileName( NULL, *szPath, MAX_PATH); と書き換えておりますが、うまくいきません。。。orz VBの経験は5年以上ございますが、C++は難しいでございますね。。。  もう少し頑張ってまいります!!! ご親切にアドバイスいただき誠にありがとうございました!!m(_ _)m

  • maiko0318
  • ベストアンサー率21% (1483/6969)
回答No.1

触ったことはないですが、F5のカレントフォルダーが違うのではないでしょうか? であれば、 fstream fs("test.dat", ios_base::in); ではなくて fstream fs("c:\test.dat", ios_base::in); などと、フルパスで指定してみたらどうなるかな? c:\test.dat だか c:\\test.dat かもしれない。

MKT_
質問者

お礼

 どうもありがとうございます!! こんなに早く見ていただけて非常に嬉しいですm(_ _)m "text.dat" ↓ "C:\Users\(ユーザー名)\documents\Visual Studio 2010\Projects\(プロジェクト名)\Debug\test.dat" に書き換えてみましたところ、新しいエラーで >warning : unrecognized character escape sequence なるものが出てまいりましたので、英語サイトを検索しております。パスの文字列の中には使えないような文字はなさそうなのでございますが。。。  ご親切にどうもありがとうございました!!m(_ _)m

関連するQ&A