掲示板利用宣言

 次のフォームをすべてチェックしてからご利用ください。

 私は

 題名と投稿者名は具体的に書きます。
 課題の丸投げはしません。
 ソースの添付は「HTML変換ツール」で字下げします。
 返信の引用は最小限にします。
 環境(OSとコンパイラ)や症状は具体的に詳しく書きます。
 返信の付いた投稿は削除しません。
 マルチポスト(多重投稿)はしません。

掲示板2

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧

No.27228

複数ファイルのOpen方法(動的にファイルポインタを確保したい)
投稿者---さや(2006/06/14 16:06:15)


こんにちは。さやです。
複数ファイル(数は動的)をOPENして
出力するプログラムを作成しようと思っています。
数が動的なため、mallocを使って確保しようと
思うのですが、エラーになってしまい出来ません。
とんでもない誤解をしてしまっているような気もするのですが・・・

#include <stdio.h>
#include <string.h>
#include <malloc.h>

int fileopensample(){
    int i, sampcnt = 0;
    FILE *wfp;
    int outfilecnt = 5;
    char outfile[5][256] ={"a.txt","b.txt","c.txt","d.txt","e.txt"};
    char rc[1024];

    //出力ファイルポインタ確保

    wfp = (FILE *)malloc(sizeof(FILE) * outfilecnt);

    //出力ファイルWriteOpen

    for(i=0; i<outfilecnt; i++){
        wfp[i] = fopen(outfile[i], "w");
        if(wfp[i] == NULL){
            return(1);
        }
    }
    strcpy(rc,"Hello!!");
    for(i=0; i<outfilecnt; i++){
        fprintf(wfp[i],"%s",rc);
    }
    return(0);
}

void main(){
    int res;

    res = fileopensample();

}


13行目 error C2440: 'type cast' : cannot convert from 'void *' to 'FILE'
17行目 error C2679: binary '=' : no operator found which takes a right-hand operand of type 'FILE *' (or there is no acceptable conversion)
18行目 error C2676: binary '==' : 'FILE' does not define this operator or a conversion to a type acceptable to the predefined operator
24行目 error C2664: 'fprintf' : cannot convert parameter 1 from 'FILE' to 'FILE *'

コンパイラ:VC++2005



この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:複数ファイルのOpen方法(動的にファイルポインタを確保したい) 27229 Blue 2006/06/14 16:10:53


No.27229

Re:複数ファイルのOpen方法(動的にファイルポインタを確保したい)
投稿者---Blue(2006/06/14 16:10:53)


ファイルポインタの配列を動的確保だから

FILE **wfp;
wfp = ( FILE** )malloc( 5 * sizeof( FILE* ) ); 
なのでは。


この投稿にコメントする

削除パスワード

No.27230

Re:複数ファイルのOpen方法(動的にファイルポインタを確保したい)
投稿者---さや(2006/06/14 16:29:38)


こんにちは。さやです。
Blueさん、即レスにありがとうございます。

>ファイルポインタの配列を動的確保だから
>
>
FILE **wfp;
wfp = ( FILE** )malloc( 5 * sizeof( FILE* ) ); 
なのでは。

 なるほど・・・
 そうでしたね。 もともとがファイルポインタなんですものね。
                      ~~~~~~~~
 ご指摘の通りにしましたところ、出来ました。
 Blueさん 感謝しています。
 本当にありがとうございました。
 助かりました。


この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧