通知
すべてクリア
Topic starter
2006年10月18日 2:04 PM
ファイルの内容を取り込みたく、以下のようにしました。
しかし、内容は取り込めてそうなのですが、
size変数に0が入ります。MSDNでは実際に読み取った
サイズが入ると書いているようですがなぜでしょうか?
実際に読み取ったサイズを得る方法は他にありますか?
環境はXP&VC2003です。
char buf[500000];
FILE *fp;
int size;
fp = fopen(foo.bin, rb);//ファイルサイズは200kbくらい
size = fread(buf, sizeof(buf), 1, fp);
fclose(fp);
2006年10月18日 2:10 PM
> MSDNでは実際に読み取ったサイズが入ると書いているようですがなぜでしょうか?
そんなこと一言も書いてありません。
fread(格納場所,項目のサイズ,読み出す最大項目数,ファイル)
の戻り値は正しく読めた項目数となります。
size = fread(buf, sizeof(buf), 1, fp);
これは ひとつ500000バイトの項目を1項目読めってことですから、
ファイルが500000バイトに満たなければ「正しく読めた項目数はゼロ」です。
Topic starter
2006年10月18日 2:38 PM
なるほど…
size = fread(buf, 1, sizeof(buf), fp);
こうしたら出来ました
ありがとうございました。