C言語暦は半年くらいだと思います。
Windows Vista Home Basic
Visual C++ Express Edition 2008
今、Bitmapファイルを扱うコンソールアプリケーションを作っています。
簡単に説明しますと・・・
ファイルから読み込んだ情報を構造体に格納、そしてその情報を元に画像データを文字列に変換。
のようなプログラムです。
今困っているのは"ファイルから読み込んだ情報を構造体に格納"の部分です。
構造体の中に構造体を入れりてみたりしているうちに"."や"->"が多くなって分からなくなってしまいました。
#define FNAME "256bitmap.bmp"
typedef struct BMPFILEHEADER{
WORD bfType;
DWORD bfSize;
WORD bfReserved1;
WORD bfReserved2;
DWORD bfOffBits;
}BMPFILEHEADER;
typedef struct {
BMPFILEHEADER bf;
BMPINFOHEADER bi;
RGBQUAD rgb[256];
BYTE *ImageData;
} BitmapFile_t;
//Bitmapデータを読み込んで文字列に変換
//戻り値:-1 = 不正 1 = 正常
int Bitmap2Str(BitmapFile_t *bmp){
FILE *fp;
BitmapFile_t *p;
if( !(fp = fopen(FNAME, "rb")) ){ //fp == NULL ならば
printf("ファイルのオープンに失敗。\n");
return -1;
}
p = bmp; //ポインタを扱いやすいように
//BMPFILEHEADER
fread(&p->bf.bfType, sizeof(p->bf.bfType), 1, fp);
}
かなり省略しました。関数は未完成です。処理自体には問題ないはずですが、構造体とポインタの扱いはこれでいいのでしょうか?
記述していない改行が入ってしまったようです。仕様でしょうか?