コードはこれです↓
/*==================
画像ファイルパッキングプログラム
※文字列の区切りに"#"を使用
*/
#define _CRT_SECURE_NO_DEPRECATE 1
#include<iostream>
#include<Windows.h>
#include<conio.h>
#define NameSize 2048*5
#define FileAmount 2
#define PackingName "th00s.dat"
#define MAXSIZE 1019205 //
int main(){
//ファイル名
char FileName[FileAmount][NameSize]={
"Graph\\01.bmp",
"Graph\\01.jpg"
};
//FILE構造体
FILE *fp;
//画像個数(char)
char a[48];
//既にあるときは初期化
fopen(PackingName,"w");
//先頭に画像の個数を書き込む
sprintf(a,"%d",FileAmount);
fp=fopen(PackingName,"a");
//書き込み
fputs(a,fp);
fputs("#",fp);
//画像ヘッダーの書き込み
for(int i=0;i<FileAmount;i++){
fputs(FileName[i],fp);
fputs("#",fp);
//画像データの書き込み
FILE *Graph;
Graph=fopen(FileName[i],"rb");
if(Graph==NULL){
std::cout<<i<<" 個目の画像データがありません"<<std::endl;
fputs("NULL",fp);
}else{
int size;
int size0;
char *Data[10000];
//読み込み
size=fread(Data,1,MAXSIZE,Graph);
size0=size;
std::cout<<i<<" 個目のデータは"<<size0<<" Bです。"<<std::endl;
//サイズの書き込み
char Size[512];
sprintf(Size,"%d",size);
fputs(Size,fp);
fputs("#",fp);
//書き込み
fwrite(Data,size,1,fp);
fclose(Graph);
fputs("#",fp);
}
}
//終了
std::cout<<"完了"<<std::endl;
fclose(fp);
getch();
return 0;
}
実行結果が、
0 個目のデータは0 Bです。
1 個目のデータは0 Bです。
完了
とでて、できあがったファイルをバイナリエディタでひらくと画像データが入っていません。
因みに、画像データはちゃんとあります。
どうしたら良いか、わかる方は教えてください。
よろしくお願いします。