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); }かなり省略しました。関数は未完成です。
処理自体には問題ないはずですが、構造体とポインタの扱いはこれでいいのでしょうか?
記述していない改行が入ってしまったようです。仕様でしょうか?