ページ 11

ファイル読み込みの際のパス

Posted: 2008年11月28日(金) 11:39
by ミラクル
すみませんタイトルがなかった。。。



ファイル読み込みの際に引数を受け取った時、
例えば
実行ファイルがsampleだとして
sample "テキストファイル"
のようにテキストファイルを引数にした場合
で下記のようなパスがつくとうまくいかなくて,
fp = fopen("/local/file","r"); のところを
fp = fopen(file,"r")にするとうまくいくんですけど
なにがわるいんでしょうか??


#define MN 256
int main(int argc,char **argv){

test(argv[1]);

}

int test(char val[MN]){

FILE *fp;
char file[MN];
strcpy(file,val);

fp = fopen("/local/file","r");

・・・・

}

Re:ファイル読み込みの際のパス

Posted: 2008年11月28日(金) 12:22
by ouh
fopen("//local//file", "r")
とすればいいと思います。

Re:ファイル読み込みの際のパス

Posted: 2008年11月28日(金) 12:24
by ouh
ごめんなさい。無視してください。
スラッシュとバックスラッシュを見間違えて...
恥ずかしい...

Re:ファイル読み込みの際のパス

Posted: 2008年11月28日(金) 14:22
by kazuoni
テキストファイルの位置の事ですかね。
mainのコードが書かれたところにテキストファイルが置いてあるのでそうなります。
もしmainのコードと同じところにlocalというファイルがあり、
その中にテキストファイルがあれば、
fp = fopen("/local/file","r");
で大丈夫です。
環境がわからないので何とも言えないですが、visual c++なら
fp = fopen("./local/file.txt","r")
ですかね。
環境によっては
/local/file
でいけるのでしょうか^^;まだ他の環境での知識が浅いもので・・・。

あ、雰囲気コマンドライン引数を使ってるようですけど・・・
これだと題意を満たさないような気がしますが。。

独り言でした。

Re:ファイル読み込みの際のパス

Posted: 2008年11月28日(金) 14:29
by kazuoni
ありゃ。下に無題で同じスレがありましたね^^;
すみませんでした。
しかも外れた回答・・・^^;
失礼しました。
これは削除されるのでしょうか?
管理人さんあとよろしくお願いしますw
(あ、無視で構いません。<ミラクルさん)