#include <stdio.h>
int main() {
FILE *fp;
if ((fp = fopen("sample002.cpp", "rb")) == NULL) {
printf("Error : File Open\n");
return 1;
}else{
int mm_leng;
unsigned char mm_read_buff[48][16];
char mm_output_buff[16 + 16 * 3 + 16 + 7];
mm_leng = fread(mm_read_buff, 1,sizeof(mm_read_buff), fp);
mm_output_buff[16] = ' ';
mm_output_buff[17] = '|';
mm_output_buff[18] = ' ';
int y = 0;
int j=16;
for (int i = 0; i < mm_leng; i += 16) {
char *ptr = mm_output_buff+19;
for ( j = 0; j < 16; j++) {
if (y * 16 + j >= mm_leng) break;
unsigned short ch = (unsigned short) mm_read_buff[y][j];
if (ch > 0x7e || ch < 0x20) {
mm_output_buff[j] = '.';
}else {
mm_output_buff[j] = (char ) ch;
}
sprintf(ptr, "%02x ", ch);
ptr += 3;
}
printf("%4x %s\n",y, mm_output_buff);
y++;
}
if (j < 16) {
for (; j < 16; j++) {
mm_output_buff[j] = ' ';
}
printf("%4x %s\n",y, mm_output_buff);
}
fclose(fp);
}
}
ビルドしてみる。
エラーが出て怒られた。
1>C:\softca\sample\sample002\sample002.cpp(11,60): warning C4267: '=': 'size_t' から 'int' に変換しました。データが失われているかもしれません。
1>C:\softca\sample\sample002\sample002.cpp(4,12): error C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>C:\softca\sample\sample002\sample002.cpp(27,5): error C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
コンパイラの警告 (レベル 3) C4996
エラーが出ないように、コンパイルの設定を変える
ビルドしてみる。
今度はエラーが無い様だ。(エラーからワーニングに変わっている)
1>C:\softca\sample\sample002\sample002.cpp(11,60): warning C4267: '=': 'size_t' から 'int' に変換しました。データが失われているかもしれません。
1>C:\softca\sample\sample002\sample002.cpp(4,12): warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>C:\softca\sample\sample002\sample002.cpp(27,5): warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
では、実行してみよう!!
『デバック』『デバックなしで開始』