#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
int _tmain(int argc, _TCHAR* argv[])
{
char strData[]="424df600000000000000360000002800000008000000080000000100180000000000c0000000c40e0000c40e00000000000000000000000000000000000000fe70a0fe70a0000000000000000000000000000000000000fe70a0fe70a0000000000000000000000000000000fe70a0fe70a0fe70a0fe70a0000000000000fe70a0fe70a0fe70a0fe70a0fe70a0fe70a0fe70a0fe70a0fe70a0fe70a0fe70a0fe70a0fe70a0fe70a0fe70a0fe70a0000000000000fe70a0fe70a0fe70a0fe70a0000000000000000000000000000000fe70a0fe70a0000000000000000000000000000000000000fe70a0fe70a0000000000000000000";
//↑は、バイナリーエディターで8×8サイズのビットマップファイルを読み込んだデータ
FILE *p;//ファイルポインタに格納されるサイズは、何故だか分かりませんが0x950バイトまで…
char c;
int i,d;
p=fopen("c:\\users\\user\\desktop\\test.bmp","w");//バイナリーデータとして書き込む時は、'b'を付けます。(読み込みも同じ)
for(i=0;i<sizeof(strData)-1;i+=2){//←sizeofを使った場合、文字列終端子の\0までカウントされるのでstrlenが妥当です。
c=strData[i];
if( c>='0' && c<='9' ) d=(c-0x30)*16;
if( c>='a' && c<='f' ) d=(c-0x61+10)*16;
c=strData[i+1];
if( c>='0' && c<='9' ) d+=(c-0x30);
if( c>='a' && c<='f' ) d+=(c-0x61+10);
fputc((unsigned char)d,p);
}
fclose(p);
return 0;
}
ポインター