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

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
fulls
記事: 72
登録日時: 14年前
住所: 埼玉

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

#1

投稿記事 by fulls » 14年前

C言語でファイルを読み込みその容量を返すような関数はありませんか?
もしなかったら、自作でも構わないので教えてください。
ファイルの容量はだいたい5MB弱です。
よろしくお願いします。

アバター
みけCAT
記事: 6734
登録日時: 14年前
住所: 千葉県
連絡を取る:

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

#2

投稿記事 by みけCAT » 14年前

苦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
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

アバター
bitter_fox
記事: 607
登録日時: 14年前
住所: 大阪府

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

#3

投稿記事 by bitter_fox » 14年前

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なのでそれに合わせました。

fulls
記事: 72
登録日時: 14年前
住所: 埼玉

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

#4

投稿記事 by fulls » 14年前

お二人ともありがとうございます。

閉鎖

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