ファイルの読み込みについて
Posted: 2011年4月14日(木) 18:14
C++で自作のバイナリファイルの読み込みをしています。
バイナリエディタで 00 のところで読み込みが止まってしまって困っています。
何かいい方法はありませんか。
コード↓
よろしくお願いします。
多分EOFと勘違いしているのかなーとか思うのですが...
バイナリエディタで 00 のところで読み込みが止まってしまって困っています。
何かいい方法はありませんか。
コード↓
#include<iostream>
#include<conio.h>
#include<fstream>
using namespace std;
#define PackingName "thf00s.dat" //読み取りファイル名
#define MARK "#CS#" //セパレーター
int main(){
//変数
//ファイルサイズ
size_t FileSize;
//ファイル数
int amount;
std::ifstream dat;
//読み込み
dat.open(PackingName,std::ios::in | std::ios::binary);
//取得確認
if(dat.fail()){
cout<<"ファイルがありません"<<endl;
_getch();
return 0;
}
//ファイルの個数の読み込み
char buf[16];
dat.get(buf,16);
//サイズ取得
FileSize=(size_t)dat.seekg(0,std::ios::end).tellg();
cout<<"ファイルサイズは "<<FileSize<<" Bです。"<<endl;
//ポインタを最初に戻す。
dat.seekg(0,std::ios::beg);
//サイズ分だけメモリを確保
char *Buffer = new char [FileSize];
//読み込み
dat>>Buffer;
cout<<Buffer<<endl;
cout<<"文字数は"<<strlen(Buffer)<<endl;
//#CS#を探す
strtok(buf,MARK);
//charからintに変換
amount=atoi(buf);
cout<<"ファイル数は"<<amount<<"個です。"<<endl;
//終了作業
delete [] Buffer;
dat.close();
_getch();
return 0;
}
多分EOFと勘違いしているのかなーとか思うのですが...