c/c++语言开发共享读取C中的二进制文件

假设使用此函数原型编写二进制文件(需要打开以进行读取):

void writeBinaryFile ( char *fileName , char *comment , int numberOfDoubles , double *doubles , int numberOfInts , int *ints ) 

(有关此function的更多详细信息,请参见下面的粘贴)

我的书面代码只获取.bin文件的第一个字母……

这是我的function:

 void readBinaryFile(char *fileName) { FILE *fp; char *ptr; double *ptr1; int *ptr2; ptr=(char*)malloc(sizeof(char)*5); ptr1=(double*)malloc(sizeof(double)*6); ptr2=(int*)malloc(sizeof(int)*6); fp=fopen ( fileName , "rb" ) ; fread(ptr,sizeof(char),11,fp); while(*ptr!='') { printf("%c",*ptr); ptr++; } fclose(fp); } 

我在这里想念的是什么? 我需要阅读的不仅仅是.bin文件中的第一个字符。

一如既往地感谢您的帮助。 谢谢!

如果任何人都需要有条理的完整代码,这里是粘贴:

https://pastebin.com/66jZwfUD

     void readBinaryFile(char *fileName) { FILE *fp; char *ptr; double *ptr1; int *ptr2; ptr=(char*)malloc(sizeof(char)*5); ptr1=(double*)malloc(sizeof(double)*6); ptr2=(int*)malloc(sizeof(int)*6); 

    不要在C中malloc的返回值。它隐藏了错误。

      fp=fopen ( fileName , "rb" ) ; 

    你需要在这里检查错误。

      fread(ptr,sizeof(char),11,fp); 

    你为ptr分配了5个字节,现在你正在读11个。你还应该检查fread的返回值。

      while(*ptr!='') { printf("%c",*ptr); ptr++; } 

    没有什么可以阻止这个循环从分配空间的末尾运行。

      fclose(fp); } 

    现在,您分配的所有内存都已泄露,并且您读入的所有数据都将丢失,因为返回时指针超出了范围。

      以上就是c/c++开发分享读取C中的二进制文件相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/c-cdevelopment/549242.html

      (0)
      上一篇 2021年1月14日
      下一篇 2021年1月14日

      精彩推荐