• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ファイルが開かない)

ファイルが開かない

このQ&Aのポイント
  • 最近C言語の入門書を読んでプログラムを作成しましたが、ファイルを開くことができません。
  • 作成したプログラムは指定したファイルを読み込み、その内容を画面に出力するものです。
  • しかし、ファイルを指定しても「ファイルをオープンできません」というエラーメッセージが表示されます。

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

  • ベストアンサー
  • jam-best
  • ベストアンサー率27% (94/344)
回答No.2

No.1です。 どうもファイルの置く場所が問題なようです。 実行したときの作業ディレクトリは設定をしていなければ、デフォルトでvcpojファイルが置いてある場所のようです。 なのでexeの場所では、ファイルを見つけることできていないようです。すいませんでした。 なのでファイルをソースが置いてあるフォルダに置くか、もしくはフルパスで指定してください。 ちなみにフルパス指定だとC:\でなく、C:\\と\を2個記述してください。

shomarket
質問者

お礼

ありがとうございました。ソースの置いてあるフォルダにファイルを移動してVC Net 2003 を起動してdebugしてみたところうまくいきました。 ちなみにフルパス指定はどこでやるのですか? コマンドプロンプト画面だと C:\> となりBackspace押しても > が消えません。これだとC:\\のようにできないのですが、よろしければ教えてください。

その他の回答 (2)

  • jam-best
  • ベストアンサー率27% (94/344)
回答No.3

gets関数は入力したものを読み込むものですのから、気にせずC:\~~~ファイル名と入力すればいいです。消すとかそういう操作はいりません。

shomarket
質問者

お礼

遅くなってすいません。言われたとおりにやってみたところ同じようにできました。本当にありがとうございました。 

  • jam-best
  • ベストアンサー率27% (94/344)
回答No.1

> fin = fopen("filename", "r"); filenameは変数なので、""はいらないと思います。 これではfilenameというファイル名のファイルを開こうとしてしまいます。 fin = fopen(filename, "r"); ファイルのパスは省略してもexeと同ディレクトリであれば問題ないです。

shomarket
質問者

補足

ご返事ありがとうございます。 早速言われた場所を fin = fopen(filename, "r"); に直しました。。しかしあいかわらず 入力ファイル名を指定してください=smp1.txt smp1.txtをオープンできません。 Press any key to continue と表示されてしまいます。 他に何か問題があるのでしょうか?