• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C言語 fopen)

C言語でファイルを開けない理由について

このQ&Aのポイント
  • 現在ファイルがオープンできるかどうかを確認したいのですが、指定したディレクトリの中のファイルを指定しているのですが、オープンできませんという結果が返ってきます。同じ場所にファイルを置いてファイル名だけでしていするとオープンが出来ます。
  • C言語のfopen関数を使用して指定したディレクトリの中のファイルを開こうとしています。しかし、指定したディレクトリの中にファイルが存在しない場合、ファイルをオープンすることができません。
  • Visual StudioでC言語のプログラムを実行する際、オープンしようとしているファイルのパスに間違いがあるとオープンに失敗することがあります。ファイルが存在する場所を正確に指定しているか確認してください。

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

  • ベストアンサー
回答No.4

たぶん、相対パスにしたいのかと。 パスの先頭にピリオドを追加してみたらどうでしょうか。 "./file/d20151001.csv" ピリオドひとつはカレントディレクトリ、ピリオド二つ(..)なら一改装上のディレクトリを指します。

losloson
質問者

お礼

ピリオド一つでカレントディレクトリになるのですね、知らなかったです。 ありがとうございます。

その他の回答 (3)

  • kumatti1
  • ベストアンサー率60% (73/121)
回答No.3

もしくは、C++11からサポートされた文字列リテラルを使うとか。 char *filename = R"(/file/d20151001.csv)";

  • wormhole
  • ベストアンサー率28% (1626/5665)
回答No.2

パスの区切り文字は'/'でも大丈夫ですが、 パスあってます? >char *filename = "/file/d20151001.csv"; だと実行時のカレントドライブの \file\d20151001.csv の事になりますが(カレントドライブがCドライブなら C:\file\d20151001.csv ですし、Dドライブなら D:\file\d20151001.csv になります)、そこにファイルありますか?

  • maiko0333
  • ベストアンサー率19% (839/4401)
回答No.1

"/file/d20151001.csv" ディレクトリーはバックスラッシュか円マーク(この場合は2個)ですね。

関連するQ&A