• ベストアンサー

C言語でフルパスのファイル読み込み方法について

VBAからC言語の勉強を始めたのですが、 c:\test\myfile.txt というファイルを読み込むとき FILE *fp; fp = fopen("c:\\test\\myfile.txt", "r"); というようにアドレスバーからパスをコピーして貼り付けた後、\を\\に置換しなければなりません。 そのままパス情報を使えていたVBAのプログラムよりかなりわずらわしく感じるのですが、C言語ではファイルの読み込みでフルパスを指定して読み込むのは一般的ではないのでしょうか。 それともほかにやり方(\のままパスを設定する方法)があるのでしょうか。 なんだか使い勝手が違ってちょっと戸惑っているのですが、よろしくお願いします。

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

  • ベストアンサー
  • D-Matsu
  • ベストアンサー率45% (1080/2394)
回答No.2

わからない用語は調べましょう。 詳しくはエスケープ文字もしくはエスケープシーケンスを調べてください、と前置いて。 ものすごく簡単に言うとCでは\は直後の1文字と組み合わせた特殊文字として扱われることになっているのが原因です。 UNIX系ではディレクトリ(フォルダ)の区切り(ディレクトリセパレータ)を/で表すのでこういった問題は起きませんが、Windowsだと\なのでそうなってしまう訳です。

kuwana_sol
質問者

お礼

ありがとうございます。

その他の回答 (1)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

「フルパスを指定して読み込むのが一般的かどうか」という問題ではなく, 「UNIX でエスケープのために使っていた文字コードを MS-DOS がディレクトリセパレータとして使ってしまった」ことが問題. あるいは「自分のところで売っていたコンパイラで対応できないから」という理由で MS-DOS のシステムコールを 1つ潰してしまったのが問題という言い方もないわけではない.

kuwana_sol
質問者

お礼

回答有難うございます。 ただ、正直専門用語の連発で私の知識では理解できませんでした。 物凄いライトユーザーですので・・・

関連するQ&A