读取C错误输出中的二进制文件

时间:2014-02-22 19:47:33

标签: c binary hex

我正在尝试读取二进制文件并将每个字节打印为2hex数字,但是当时 我到了一个空间我的程序打印'0'时它应该是'20'并且它每20次执行此操作

我的输出0 17 FF FF FF FF 0 0 17 FF FF FF FF FF 0 0 0 FF 0 0

http://www.percederberg.net/tools/text_converter.html

的输出
20 17 FF FF FF FF 20 20 17 FF FF FF FF FF 20 20 20 FF 20 20

有谁知道最近发生了什么? file = ÿÿÿÿ ÿÿÿÿÿ ÿ

//Read the test.bin file!!
#include<stdio.h>
   char initial[] = "test.bin";
struct rec{
   unsigned char mydata;
};
int readfile(char []){
   int counter;
   FILE *ptr_myfile;
   struct rec my_record;
   ptr_myfile=fopen(initial,"r");
   if (!ptr_myfile){
      printf("Unable to open file!");
      return 1;
   }
   for ( counter=1; counter <= 20; counter++){
      fread(&my_record,sizeof(struct rec),1,ptr_myfile);
      printf("%X\n",my_record.mydata);      
   }
   fclose(ptr_myfile);
   return 0;
}
int main(){
   readfile(initial);
   return 0;
}

1 个答案:

答案 0 :(得分:0)

代码工作正常,但在将二进制数据复制到网站时,0x00字节最终变为空格,其中ASCII和兼容字符集的值为0x20