精华内容
下载资源
问答
  • C语言读取二进制文件

    万次阅读 2017-09-26 00:38:01
     其实,解决C语言二进制未见解析很简单,就是一个简单fopen函数的使用而已。其余的操作跟常用的脚本语言其实也没有太大的差异。代码如下:  1 #include "stdio.h"  2   3 FILE*fp;  4 

           脚本语言使用习惯了基本上不愿意去考虑C语言的文件处理功能,若不是近期看到了类似的东西又遇上了这方面的需要,或许这个简单的功能我永远也不会去碰。

           其实,解决C语言的二进制未见解析很简单,就是一个简单fopen函数的使用而已。其余的操作跟常用的脚本语言其实也没有太大的差异。代码如下:

      1 #include "stdio.h"

      2 

      3 FILE*fp;

      4 

      5 intmain(void)

      6 {

      7     shortelement;

      8     fp = fopen("a.out","rb");

      9     while(!feof(fp))

     10     {

     11         element = getc(fp);

     12         printf("%2x",element);

     13     }

     14     /*

     15         Make sure that the handle of the opened file closedat this

     16         point.

     17     */

     18     fclose(fp);

     19     return 0;

     20 }

     21 

           最终,程序是把自己编译后的可执行文件当作二进制文件给读取显示出来了。编译与运行结果如下:

    GreydeMac-mini:demo greyzhang$ gcc demo.c

    GreydeMac-mini:demo greyzhang$ ls

    a.out demo.c   demo.c~

    GreydeMac-mini:demo greyzhang$ ./a.out 

    cffaedfe 7 0 0 1 3 0 080 2 0 0 0 f 0 0 0 0 50 085 020 0 0 0 0 019 0 0 048 0 0 05f5f504147455a45524f 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 019 0 0 0d8 1 0 05f5f54455854 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 010 0 0 0 00 0 0 0 0 0 0 0 0 0 010 0 0 0 0 0 0 7 0 0 0 5 0 0 0 5 0 0 0 0 0 0 05f5f746578740 0 0 0 0 0 0 0 0 05f5f54455854 0 0 0 0 0 0 0 0 0 0a0 e 0 0 1 0 0 09e 0 0 0 0 00 0a0 e 0 0 4 0 0 0 0 0 0 0 0 0 0 0 0 4 080 0 0 0 0 0 0 0 0 0 0 0 05f5f73747562730 0 0 0 0 0 0 0 05f5f54455854 0 0 0 0 0 0 0 0 0 03e f 0 0 1 0 0 01e 0 0 0 0 0 003e f 0 0 1 0 0 0 0 0 0 0 0 0 0 0 8 4 080 0 0 0 0 6 0 0 0 0 0 005f5f737475625f68656c706572 0 0 05f5f54455854 0 0 0 0 0 0 0 0 0 05c f 0 0 1 0 0042 0 0 0 0 0 0 05c f 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 4 080 0 0 0 0 0 0 0 0 0 0 005f5f63737472696e67 0 0 0 0 0 0 05f5f54455854 0 0 0 0 0 0 0 0 0 09e f 0 0 1 0 00 d 0 0 0 0 0 0 09e f 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 005f5f756e77696e645f696e666f 0 0 05f5f54455854 0 0 0 0 0 0 0 0 0 0ac f 0 0 1 0 0048 0 0 0 0 0 0 0ac f 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0019 0 0 038 1 0 05f5f44415441 0 0 0 0 0 0 0 0 0 0 010 0 0 1 0 0 0 010 0 0 0 0 00 010 0 0 0 0 0 0 010 0 0 0 0 0 0 7 0 0 0 3 0 0 0 3 0 0 0 0 0 005f5f6e6c5f73796d626f6c5f707472 05f5f44415441 0 0 0 0 0 0 0 0 0 0 010 0 0 1 0 0010 0 0 0 0 0 0 0 010 0 0 3 0 0 0 0 0 0 0 0 0 0 0 6 0 0 0 5 0 0 0 0 0 0 0 0 0 005f5f6c615f73796d626f6c5f707472 05f5f44415441 0 0 0 0 0 0 0 0 0 01010 0 0 1 0 0028 0 0 0 0 0 0 01010 0 0 3 0 0 0 0 0 0 0 0 0 0 0 7 0 0 0 7 0 0 0 0 0 0 0 0 0 005f5f636f6d6d6f6e 0 0 0 0 0 0 0 05f5f44415441 0 0 0 0 0 0 0 0 0 03810 0 0 1 0 00 8 0 0 0 0 0 0 0 0 0 0 0 3 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0019 0 0 048 0 0 05f5f4c494e4b45444954 0 0 0 0 0 0 020 0 0 1 0 0 0 010 0 0 0 0 00 020 0 0 0 0 0 0c0 1 0 0 0 0 0 0 7 0 0 0 1 0 0 0 0 0 0 0 0 0 0 022 0 08030 0 00 020 0 0 8 0 0 0 820 0 018 0 0 0 0 0 0 0 0 0 0 02020 0 048 0 0 06820 0 038 0 00 2 0 0 018 0 0 0a820 0 0 9 0 0 06821 0 058 0 0 0 b 0 0 050 0 0 0 0 0 0 0 0 0 00 0 0 0 0 3 0 0 0 3 0 0 0 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 003821 0 0 c 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 e 0 0 020 0 0 0 c 0 002f7573722f6c69622f64796c64 0 0 0 0 0 0 01b 0 0 018 0 0 07b5430b434103812ad903da5cdc38c74240 0 010 0 0 0 0 c a 0 0 c a 02a 0 0 010 0 0 0 0 0 0 0 0 0 0 028 0 08018 0 0 0a0e 0 0 0 0 0 0 0 0 0 0 0 0 0 0 c 0 0 038 0 0 018 0 0 0 2 0 0 0 23cd6 4 0 0 102f7573722f6c69622f6c696253797374656d2e422e64796c6962 0 0 0 0 0 026 0 0 010 0 00a020 0 0 8 0 0 029 0 0 010 0 0 0a820 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0554889e54883ec10488d3def 0 0 0488d35ee 0 00c745fc 0 0 0 0e888 0 0 0488d356f 1 0 04889 6488d 565 1 0 0488b38e869 0 0 083f80 f95c180f1fff6c1 1 f85 5 0 0 0e930 0 0 0488d 53f 1 0 0488b38e84f 0 0 0488d3d9f0 0 06689c166894dfa fbf75fab0 0e83c 0 0 08945f4e9aaffffff488d 5 f 1 0 0488b38e8d 0 0 031c98945f089c84883c4105dc3ff25cc 0 0 0ff25ce 0 0 0ff25d0 0 0 0ff25d2 0 00ff25d4 0 0 04c8d1da5 0 0 04153ff2595 0 0 09068 0 0 0 0e9e6ffffff68 e 0 00e9dcffffff681a 0 0 0e9d2ffffff6827 0 0 0e9c8ffffff6833 0 00e9beffffff612e6f7574 07262 0253278 0 0 1 0 0 01c 0 0 0 0 0 0 01c 0 0 0 0 0 001c 0 0 0 2 0 0 0a0 e 0 034 0 0 034 0 0 03f f 0 0 0 0 0 034 0 0 0 3 0 0 0 c 0 1010 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 006c f 0 0 1 0 0 076 f 0 0 1 0 0 080 f 0 0 1 0 0 08a f 0 0 1 0 0 094 f 0 0 1 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0011221055 0 0 0 0114064796c645f737475625f62696e646572 05172 0900721011405f66636c6f7365 090 0721811405f66656f66 090 0722011405f666f70656e 0900722811405f67657463 090 0723011405f7072696e7466 090 0 0 0 0 0 0 0 0 0 15f 0 5 035f6d685f657865637574655f686561646572 0256d61696e 0296670 02e 2 0 0 0 3 0a01d 03 0b820 0 0 0 0 0 0a01d 0 0 0 0 0 0 2 0 0 0 f 110 0 0 0 0 0 1 0 0 016 0 0 0 f 80 03810 0 0 1 0 0 01a 0 0 0 f 1 0 0a0 e 0 0 1 0 0 020 0 0 0 1 0 0 1 0 0 0 0 0 00 028 0 0 0 1 0 0 1 0 0 0 0 0 0 0 02e 0 0 0 1 0 0 1 0 0 0 0 0 0 0 035 0 0 0 1 00 1 0 0 0 0 0 0 0 03b 0 0 0 1 0 0 1 0 0 0 0 0 0 0 043 0 0 0 1 0 0 1 0 0 0 0 0 00 0 3 0 0 0 4 0 0 0 5 0 0 0 6 0 0 0 7 0 0 0 8 0 0 0 0 0 040 3 0 0 0 4 0 0 0 5 00 0 6 0 0 0 7 0 0 020 05f5f6d685f657865637574655f686561646572 05f667005f6d61696e 05f66636c6f7365 05f66656f66 05f666f70656e 05f6765746305f7072696e7466 064796c645f737475625f62696e646572 0 0 0 00ffffffffGreydeMac-mini:demo greyzhang$ 

           从上面的结果看,其实二进制软件中还是填充了很多空数据的。

    展开全文
  • C语言读取二进制文件并保存到二维数组中文件读取代码 文件读取 一般二进制文件的存储都是数据流,那么如何将一直的数据流截取下来存到我们所需要的的二维数组里,有很多方法。这里笔者自己写了一个小程序。 代码 ...

    用C语言读取二进制文件并保存到二维数组中

    文件读取

    一般二进制文件的存储都是数据流,那么如何将数据流截取下来存到我们所需要的的二维数组里,有很多方法。这里笔者自己写了一小段代码。

    代码

    
    ```c  
    #include<stdio.h>
    #include "su.h"
    #include "segy.h"
    
    int main()
    {
    	//input written by LEE
    	//read the file (binary)
    	FILE *fp;
    	float **buffer;
    	int nx=200,nz=200,iz,ix,x,y;
    	buffer=alloc2float(nz,nx);/*这里可以自己去开辟空间,
    	这个函数是seismic unix中的 这个函数的意义就是
    		float buffer[nz][nx];
    	*/
    	fp=fopen("v.bin","rb+");
    	//find the beginning of the file
    	fseek(fp, 0, sizeof(float));
    	//read the data
    	for(ix=0;ix<nx;ix++)
    	for(iz=0;iz<nz;iz++)
    	{
    	fread(&buffer[iz][ix],sizeof(float),nz,fp);
    	}
    	// output(the value in the binary)
    	printf("input the coordinates:");
    	scanf("%d %d",&x,&y);
    	printf("vlocity[%d][%d]=%f\n",y+1,x+1,buffer[y][x]);
    	
    	fclose(fp);	
    	
    }
    

    参考资料:
    link.https://www.runoob.com/cprogramming/c-function-fread.html
    link.https://wenwen.sogou.com/z/q883376502.htm

    展开全文
  • 利用fread读取二进制文件,读出来的结果全部为零,编译运行都没有报错,代码如下, 有人说是大小端的问题,怎么理解啊?判断出来的本机器的为little endian,怎么判断需不需要转换啊?要是需要转换,怎么转换啊?在...

    利用fread读取二进制文件,读出来的结果全部为零,编译运行都没有报错,代码如下,

    有人说是大小端的问题,怎么理解啊?判断出来的本机器的为little endian,怎么判断需不需要转换啊?要是需要转换,怎么转换啊?在网上找了利用宏处理进行大小端转换的代码,但是在我这种情况下,怎么用呢?是在fread文件之前进行转换么?也不知道我代码里面用的对不对···

    有木有大神帮忙看一眼,问题到底出在哪?

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <math.h>
    
    /*define the row*column of the image file*/
    #define N_ROW 1  
    #define N_COL 9
    /*swap the little/big endian of bytes*/
    #define SWAP_2(x) ( (((x) & 0xff) << 8) | ((unsigned short)(x) >> 8) )
    #define SWAP_4(x) ( ((x) << 24) | \
                    (((x) << 8) & 0x00ff0000) | \
                    (((x) >> 8) & 0x0000ff00) | \
                    ((x) >> 24) )
    #define FIX_SHORT(x) (*(unsigned short *)&(x) = SWAP_2(*(unsigned short *)&(x)))
    #define FIX_INT(x)   (*(unsigned int *)&(x)   = SWAP_4(*(unsigned int *)&(x)))
    #define FIX_FLOAT(x) FIX_INT(x)
    
    int is_big_endian_();
    void swap_slc_data(short *cdata);
    
    int main()
    {
        FILE     *fp_in=NULL, *fp_out=NULL;
        int    i, j, num_read, swap=0;
        float     real, imag;
        double    *amp=NULL;
        float    *phase=NULL;
        long    num_fseek;
        
        short *tmp=NULL;
        
        //create the txt outfile
        if ((fp_out = fopen("IMGtest1_out.txt", "wt")) == NULL)
        {
            printf("创建输出文件失败!\n");
            return 0;
        }
        printf("***outfile fopen ok! ***\n");
    
        //open the binary SLCfile
        
        if ((fp_in = fopen("IMGtest1.SLC", "rb")) == NULL)
        {
            printf("打开输入文件失败!\n");
            return 0;
        }
        printf("*** fopen ok! ***\n");
    
        //allocate the memory for one row
        //tmp = (short *)malloc(2 * n_col * sizeof(short));
        if((tmp = (short *)malloc(2*N_COL*sizeof(short))) == NULL)
        {
            printf("分配内存错误!\n");
            free(tmp);
            return 0;
        }
        if((amp = (double *)malloc(N_COL*N_ROW*sizeof(double))) == NULL)
        {
            printf("分配内存错误!\n");
            free(amp);
            return 0;
        }
        /*if((phase = (float *)malloc(N_COL*N_ROW*sizeof(float))) == NULL)
        {
            printf("分配内存错误!\n");
            free(phase);
            return 0;
        }*/
        printf("*** malloc ok! ***\n");
    
        
        /*check the bigendian of litte endian*/
        if (is_big_endian_() == -1) {swap = 1;fprintf(stderr,".... little endian,swapping bytes\n");} else {swap = 0;}    
       
    
        //read data
        for (i=0; i<N_ROW; i++)
        {
            /*change the big/little endian*/
            if (swap) swap_slc_data(tmp);    
            
            //set the starting read position, from the beginning
            num_fseek = i*2*N_COL*sizeof(short);    
            fseek(fp_in, num_fseek, SEEK_SET);
            printf("*** fseek ok! ***\n");
            
            //readdata row by row
            num_read = fread(&tmp[0], sizeof(short), 2*N_COL, fp_in);
            if (num_read != 2*N_COL)
            {
                printf("读取文件失败!\n");
                return 0;
            }
            printf("*** fread ok! %d data is read ***\n", num_read);
            
            //基于读取出的一行提取实部、虚部,并计算相位和幅度        
            for(j=0; j<N_COL; j++)
            {    
                real = FIX_SHORT(tmp[2*j]);
                imag = FIX_SHORT(tmp[2*j+1]);
                printf("real[%d]: %f\timag[%d]: %f\t",j,real,j,imag);
    
                amp[j+N_COL*i] = (int)sqrt(real*real + imag*imag);
                printf("amp[%d][%d]: %f\n", i, j, amp[j+N_COL*i]);
    
                /*phase[i][j] = (float)atan(imag/real);
                printf("phase[%d][%d]: %f\t", i, j, phase[i][j]);*/
    
                //write into .txtfile
                fprintf(fp_out, "%f\t", amp[j+N_COL*i]);
            }
            fprintf(fp_out, "\n");
                    
            printf("\n");
        }
    
        free(tmp);
        free(amp);
        /*free(phase);*/
        fclose(fp_out);
        fclose(fp_in);
    
        return 0;
    }
    
    /*---------------------------------------------------------------*/
    /* check endian of machine     */
    /* 1 if big; -1 if little    */
    int is_big_endian_()
    {
        union
        {
        long l;
        char c[sizeof (long) ];
        } u;
        u.l = 1;
        return( u.c[sizeof(long) - 1] ==  1 ? 1 : -1);
    }
    
    /*--------------------------------------------------------------*/
    /* swap little/big endian        */
    void swap_slc_data(short *cdata)
    {
        FIX_SHORT(cdata);
    }
    

    运行结果如下:
    在这里插入图片描述

    展开全文
  • 二、C语言读取二进制文件 #include #include #include int main(int argc, char *argv[]) { char *file_name = "F:\\binary_files\\RE322.bin"; FILE *binary_file = fopen(file_name, "rb"); short int...

    最近需要将matlab下开发的算法转为C程序,其中第一步涉及文件的读写问题。matlab中dicom文件的读取非常方便,而C语言则比较麻烦。现在我的做法是用matlab将dicom文件转为二进制文件,然后用C语言的程序来读取。

    一、matlab读取三维dicom图像并保存为二进制文件

    % write_dicomefiles_to_binaryfiles

    file_path_total = 'E:\项目\image segmentation\数据\Disc_Corrective';
    case_listing = dir((file_path_total));
    case_num = size(case_listing, 1) - 2;
    save_path_name = 'F:\binary_files';
    mkdir(save_path_name);
    for i = 1:case_num;
        file_name = case_listing(i+2,1).name;
        disp(file_name);
        V = ReadVolumeImage(fullfile(file_path_total, file_name));
        V = int16(V);
        binary_file_name = [save_path_name,'\',file_name,'.bin'];
        fid = fopen(binary_file_name, 'w');
        fwrite(fid, [size(V,1), size(V,2), size(V,3)], 'int16');
        fclose(fid);
        fid = fopen(binary_file_name, 'a');
        fwrite(fid, V, 'int16');
        fclose(fid);
    end


    这个程序用于将文件夹内所有的3D CT数据转为对应的二进制文件。


    二、C语言读取二进制文件

    #include <stdio.h>
    #include <malloc.h>
    #include <stdlib.h>
    
    int main(int argc, char *argv[])  
    {  
        char *file_name = "F:\\binary_files\\RE322.bin";
        FILE *binary_file = fopen(file_name, "rb");  
    short int x_len, y_len, z_len;
    // 读取三维图像的长,宽,高
    fread(&x_len, sizeof(short int), 1, binary_file);
    fread(&y_len, sizeof(short int), 1, binary_file);
    fread(&z_len, sizeof(short int), 1, binary_file);
    
    //读取三维图像的每个像素 
    int pixel_num = x_len * y_len * z_len;
    //设置保存3D图像每个像素的动态数组
    short int *volume_image = (short int *)malloc((pixel_num) * sizeof(short int));
        fread(volume_image, sizeof(short int), pixel_num, binary_file);
    free(volume_image);
    fclose(binary_file);  
    return 0;  
    }  



    注意一点,对每一层的数据,matlab是列优先的,而C语言是行优先的。


    展开全文
  • C语言读取二进制文件大小

    千次阅读 2011-10-20 11:51:19
    long GetFileSize(char *filename) { long siz = 0; FILE *fp = fopen(filename, "rb"); if (fp) { fseek(fp, 0, SEEK_END); siz = ftell(fp); fclose(fp); } }
  • C语言中读写二进制文件,文件的数据类型为float,废话少说,上代码:#include "opencv2/highgui/highgui.hpp"#include "opencv2/core/core.hpp"#include #include using namespace std;int main(){cv::Mat descr;...
  • C语言实现二进制文件读写

    千次阅读 2019-01-29 16:31:51
    C语言实现二进制文件读写
  • 二进制文件内容有多种无符号基础数据类型存储的。但是用java读取出来的有问题。网上说的无符号转换也试过了,也没用,希望高手能写个例子我看看。
  • C语言读写二进制文件

    千次阅读 2017-07-20 14:35:04
    可以这么说,除了文本文件以外的所有文件都是二进制文件二进制文件相对于文本文件更容易修改。因为文本文件的修改,需要修改以后写入内存,然后再清空原文件,再从内存中读取出修改以后的内容到本文件中。二进制...
  • 2.如何读取16进制文件最近编程用这一问题,网上查了一下,感觉还是自己写吧。16进制数据一般是:text=0x340xb5...,就是0x开头,之后是两个数字十六进制数。如果直接使用sscanf(text,"0x",&num),会把连续的数字...
  • fwrite将写入的数据作为文件的磁盘内容保存。fprintf将写入的数据的每个字符所对应的ASCII码作为文件的磁盘内容保存。fprintf做了一个转换的工作。当打开文件时,记事本会自动把文件的磁盘内容作为ASCII码转换成对应...
  • [转载] C语言实现二进制文件读写  转载于:https://blog.csdn.net/aresgod/article/details/1852321  我一直觉得二进制文件读写是个很容易的事,所以一直没在意,最近在写一个http客户端,实现文件下载的...
  • c语言读写二进制文件

    千次阅读 2019-04-03 14:12:33
    1,写二进制文件: FILE *f_out= NULL;//声明文件句柄 f_out= fopen("c://aaa.txt","wb");//打开文件句柄 if(f_out == NULL) return; fwrite(dataArray,sizeof(unsigned char),count,f_out);//写数据,参数:...
  • C语言二进制文件

    2021-03-24 23:16:38
    将斐波拉契数列的前n项用二进制方式写入自命名文件中,然后从该文件读取这n个数输出。 代码框架: #include <stdio.h> #include <stdlib.h> void save(char str[20], int n); void prnt(char str[20]...
  • //w会导致二进制文件写错误,遇到换行符0A会强制写成回车换行符0D0A c语言写文件: fwrite(buffer,buffersize,count,file);//分别是要写进文件的地址,写入内容大小,写入次数,被写文件 eg: int * ints[]={1,2,...
  • C语言二进制文件和文本文件的区别

    千次阅读 多人点赞 2015-08-27 13:51:22
    所有的信息在内存中都是以二进制的形式进行存储的,这说明了二进制文件和文本文件不是在硬件上进行区分的。  二进制和文本文件因为操作系统的不同而不同,毕竟不同的人实现同一问题的思路也不是完全一样的嘛,首先...
  • C语言二进制文件读取

    千次阅读 2015-03-12 20:45:00
    2019独角兽企业重金招聘Python工程师标准>>> ...以前不明白二进制文件是怎么回事,原来是fprintf和fscanf做了一次转换。 转载于:https://my.oschina.net/chuqixiaozhu/blog/386384
  • 然后,就在网上搜索了一下,发现通过C语言实现二进制文件读写的资料居然出奇的少,这让我很愤怒,因为虽然这东西很简单,但是对于初学者,往往会需要花很长的时间去弄,一旦明白,又发现花的时间很不值得,罢了,...
  • C语言实现二进制文件读写(转载)

    千次阅读 2014-01-02 11:04:51
    C语言实现二进制文件读写(转载) 文件的读写是挺基础,为了备忘也为了之后查资料方便,从网上找了这个例子,觉得写的很好,就转载过来了。 先介绍函数,我们一共要用到三个函数,fopen,fread,fwrite。二进制读写...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 60,014
精华内容 24,005
关键字:

c语言读取二进制文件

c语言 订阅