dポイントプレゼントキャンペーン実施中!

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

なんだか使い勝手が違ってちょっと戸惑っているのですが、よろしくお願いします。

A 回答 (2件)

わからない用語は調べましょう。


詳しくはエスケープ文字もしくはエスケープシーケンスを調べてください、と前置いて。

ものすごく簡単に言うとCでは\は直後の1文字と組み合わせた特殊文字として扱われることになっているのが原因です。
UNIX系ではディレクトリ(フォルダ)の区切り(ディレクトリセパレータ)を/で表すのでこういった問題は起きませんが、Windowsだと\なのでそうなってしまう訳です。
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2009/06/13 02:39

「フルパスを指定して読み込むのが一般的かどうか」という問題ではなく, 「UNIX でエスケープのために使っていた文字コードを MS-DOS がディレクトリセパレータとして使ってしまった」ことが問題.


あるいは「自分のところで売っていたコンパイラで対応できないから」という理由で MS-DOS のシステムコールを 1つ潰してしまったのが問題という言い方もないわけではない.
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/06/04 01:33

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!