ファイル書き込みで・・

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
ひよこ

ファイル書き込みで・・

#1

投稿記事 by ひよこ » 15年前

ファイルを取得し書きこもうと思って次の文を実行させているのですが、
書きこめません(ファイルが出てこないです。)
どうしたらよいのでしょうか?
head_fileはNULLではありません。
例えば
head_file = 0x016422b8 {fileName=0x016422b8 "D:\マイドキュメント\mp3\test.mp3" next=0x00000000 }
こんな感じです。
環境VC2005EE 言語Cです。よろしくお願いします。
//ファイルに書き出す    
    if(head_file!=NULL){
        FILE *fp;
        fp=fopen("data.mdt","w");    

        if(fp==NULL)
            return false;
                
        file_t *p=head_file;    
        while(p!=NULL){
            fprintf(fp,"%s\n",p->fileName);
            p=p->next;
        }
        fclose(fp);
    }

ひよこ

Re:ファイル書き込みで・・

#2

投稿記事 by ひよこ » 15年前

fpはNULLでなくて
fp = 0x66ce1d68 {_ptr=0x00000000 <不適切な Ptr> _cnt=0 _base=0x00000000 <不適切な Ptr> ...}
となっております。

ookami

Re:ファイル書き込みで・・

#3

投稿記事 by ookami » 15年前

時間が経っているのでもう解決しているかもしれませんが...どこか別のフォルダに出力されているなんて単純なことではないですよね...?HDD全体で、data.mdtでファイル検索してみるとか。

ひよこ

Re:ファイル書き込みで・・

#4

投稿記事 by ひよこ » 15年前

ookamiさんありがとうございます。
別のフォルダにありました。すみませんでした。
GetOpenFileNameで開いた場所に保存されてました。
GetOpenFileNameを使うと、プロジェクトのファイルのディレクトリが変更されてしまうのでしょうか?
変更しない方法があったら教えて欲しいです。

ookami

Re:ファイル書き込みで・・

#5

投稿記事 by ookami » 15年前

GetOpenFileName...確か変更された気がします。あいまいですが。

あらかじめ、
GetCurrentDirectory(_MAX_PATH, dir);
http://www11.plala.or.jp/studyhall/cpp/cpp.html

でカレントディレクトリを取得して、

SetCurrentDirectory(
LPCTSTR lpPathName // 新しいカレントディレクトリ
);
http://msdn.microsoft.com/ja-jp/library/cc429764.aspx

で戻すって感じでしょうか。あまりスマートでない気もしますが...^^;

Justy

Re:ファイル書き込みで・・

#6

投稿記事 by Justy » 15年前

>GetOpenFileNameを使うと、プロジェクトのファイルのディレクトリが変更されてしまうのでしょうか
 OPENFILENAME構造体のメンバ Flagsに OFN_NOCHANGEDIRを追加すれば変更されません。

OPENFILENAME構造体
http://hp.vector.co.jp/authors/VA023539 ... og/004.htm

ookami

Re:ファイル書き込みで・・

#7

投稿記事 by ookami » 15年前

勉強になりました^^;;;; Justyさん、ありがとうございます。ひよこさん、51134 はスルーしてください。

ひよこ

Re:ファイル書き込みで・・

#8

投稿記事 by ひよこ » 15年前

できました。
Justyさんookamiさんありがとうございました。

閉鎖

“C言語何でも質問掲示板” へ戻る