- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ファイルが開かない)
ファイルが開かない
このQ&Aのポイント
- 最近C言語の入門書を読んでプログラムを作成しましたが、ファイルを開くことができません。
- 作成したプログラムは指定したファイルを読み込み、その内容を画面に出力するものです。
- しかし、ファイルを指定しても「ファイルをオープンできません」というエラーメッセージが表示されます。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
No.1です。 どうもファイルの置く場所が問題なようです。 実行したときの作業ディレクトリは設定をしていなければ、デフォルトでvcpojファイルが置いてある場所のようです。 なのでexeの場所では、ファイルを見つけることできていないようです。すいませんでした。 なのでファイルをソースが置いてあるフォルダに置くか、もしくはフルパスで指定してください。 ちなみにフルパス指定だとC:\でなく、C:\\と\を2個記述してください。
その他の回答 (2)
- jam-best
- ベストアンサー率27% (94/344)
回答No.3
gets関数は入力したものを読み込むものですのから、気にせずC:\~~~ファイル名と入力すればいいです。消すとかそういう操作はいりません。
質問者
お礼
遅くなってすいません。言われたとおりにやってみたところ同じようにできました。本当にありがとうございました。
- jam-best
- ベストアンサー率27% (94/344)
回答No.1
> fin = fopen("filename", "r"); filenameは変数なので、""はいらないと思います。 これではfilenameというファイル名のファイルを開こうとしてしまいます。 fin = fopen(filename, "r"); ファイルのパスは省略してもexeと同ディレクトリであれば問題ないです。
質問者
補足
ご返事ありがとうございます。 早速言われた場所を fin = fopen(filename, "r"); に直しました。。しかしあいかわらず 入力ファイル名を指定してください=smp1.txt smp1.txtをオープンできません。 Press any key to continue と表示されてしまいます。 他に何か問題があるのでしょうか?
お礼
ありがとうございました。ソースの置いてあるフォルダにファイルを移動してVC Net 2003 を起動してdebugしてみたところうまくいきました。 ちなみにフルパス指定はどこでやるのですか? コマンドプロンプト画面だと C:\> となりBackspace押しても > が消えません。これだとC:\\のようにできないのですが、よろしければ教えてください。