Last active
February 19, 2017 16:29
-
-
Save skypenguins/6289c29297bf4880fb5044279ad88590 to your computer and use it in GitHub Desktop.
バイナリファイルの操作
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// BMPファイルの縦と横を読みとる | |
#include <stdio.h> | |
int main(int argc, char* argv[]){ | |
char buff[48]; | |
FILE* fp; | |
size_t size = 1; | |
size_t n = 48; | |
size_t read; | |
if(argc < 2){ | |
printf("BMPファイルの指定がありません。\n"); | |
return 0; | |
} | |
fp = fopen(argv[1], "rb"); | |
if(NULL != fp){ | |
printf("%s をオープンしました...\n", argv[1]); | |
if(n == (read = fread(buff, size, n, fp))){ | |
if('B' == buff[0] && 'M' == buff[1]){ | |
printf("width: %d height: %d \n", | |
*(int*)(buff + 18), *(int*)(buff + 22)); | |
}else{ | |
printf("ファイルがBMP形式ではありません。\n"); | |
} | |
}else{ | |
printf("%d バイトしか読み込みできませんでした...\n", | |
read * size); | |
} | |
if(0 != fclose(fp)){ | |
printf("ファイルのクローズに失敗\n"); | |
}else{ | |
printf("ファイルをクローズしました。\n"); | |
} | |
} | |
return 0; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 先頭から0~255の256バイトのバイナリファイルを作成する | |
#include <stdio.h> | |
int main(int argc, char* argv[]){ | |
char buff[256]; | |
FILE* fp; | |
size_t size = 1; | |
size_t n = 256; | |
size_t written; | |
int cnt; | |
if(argc < 2){ | |
printf("ファイル名の指定がありません。\n"); | |
return 0; | |
} | |
for(cnt = 0; cnt < 256; ++cnt){ | |
buff[cnt] = cnt; | |
} | |
fp = fopen(argv[1], "wb"); | |
if(NULL != fp){ | |
printf("%s を作成中...\n", argv[1]); | |
written = fwrite(buff, size, n, fp); | |
printf("ファイルの作成に%sしました。\n", | |
n == written ? "成功" : "失敗"); | |
if( 0 != fclose(fp)){ | |
printf("ファイルのクローズに失敗しました。\n"); | |
}else{ | |
printf("ファイルのクローズに成功しました。\n"); | |
} | |
} | |
return 0; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment