ページ 11

ファイルの読み込みについて

Posted: 2011年3月28日(月) 08:44
by fulls
C言語でファイルを読み込みその容量を返すような関数はありませんか?
もしなかったら、自作でも構わないので教えてください。
ファイルの容量はだいたい5MB弱です。
よろしくお願いします。

Re: ファイルの読み込みについて

Posted: 2011年3月28日(月) 09:00
by みけCAT
苦Cからの転載です。

コード:

fpos_t GetFileSize(const char *FileName[])
{
	fpos_t fsize = 0;

	FILE *fp = fopen(FileName,"rb"); 
 
	/* ファイルサイズを調査 */ 
	fseek(fp,0,SEEK_END); 
	fgetpos(fp,&fsize); 
 
	fclose(fp);
 
	return fsize;
}
http://9cguide.appspot.com/q_filesize.html

Re: ファイルの読み込みについて

Posted: 2011年3月28日(月) 09:08
by bitter_fox
yucky001 さんが書きました:C言語でファイルを読み込みその容量を返すような関数はありませんか?
もしなかったら、自作でも構わないので教えてください。
ファイルの容量はだいたい5MB弱です。
よろしくお願いします。
恐らく標準ライブラリにはなかったと思います。

ftellという先頭からのカーソルの位置を返す関数があるのでこれを使えば可能かと思います。

コード:

long GetFileSize(FILE *fp)
{
	long nowPos = ftell(fp); // 現在のカーソルの位置を記録しておく
	long fileSize;

	fseek(fp, 0, SEEK_END); // カーソルを末尾まで持っていく
	fileSize = ftell(fp); // 先頭からのカーソルの位置を取得する
	fseek(fp, nowPos, SEEK_SET); // 呼び出し前の位置に戻す

	return fileSize;
}
[hr][修正]
ftellの戻り値がlongなのでそれに合わせました。

Re: ファイルの読み込みについて

Posted: 2011年3月28日(月) 09:20
by fulls
お二人ともありがとうございます。