C语言中读取BIN文件

BIN文件如图,我想读取这个BIN文件,
ch= fgetc(fp) ;
printf("%x",*ch) ;
但是每次都是显示ffe8,我不知道原因,求解答!
不要意思,输出函数多了个*,去掉了也是一样的,ch我是这样定义的char ch

1、使用fopen、fread、fwrite等C语言标准库中的文件I/O函数即可对文件进行打开、读取、写入操作。下面的程序创建一个.bin的文件,然后再从里面读取数据。

#include <stdio.h>
int main()
{
    FILE* pFile;
    float buffer[] = { 2.0 , 3.0 , 8.0 };
    pFile = fopen("myfile.bin" , "wb"); // æ‰“开文件写操作
    fwrite(buffer , 1 , sizeof(buffer) , pFile); // æŠŠæµ®ç‚¹æ•°ç»„写到文件 myfile.bin
    fclose(pFile); // å…³é—­æ–‡ä»¶
    float read[3];
    pFile = fopen("myfile.bin" , "rb"); // é‡æ–°æ‰“开文件读操作
    fread(read , 1 , sizeof(read) , pFile); // ä»Žæ–‡ä»¶ä¸­è¯»æ•°æ®
    printf("%f\t%f\t%f\n", read[0], read[1], read[2]);
    fclose(pFile); // å…³é—­æ–‡ä»¶
    return 0;
}


2、bin文件一般是指的二进制文件,它往往具有两种形式,一种是某种系统平台的可执行文件格式,比如windows平台的PE文件格式,Linux平台的ELF文件格式,另外一种是提取的一段二进制代码,比如系统的主引导记录mbr,就是一个包含512个字节的程序,用c语言对这类文件进行读取时,必须按一定格式进行解析。而且常用的方法不是使用C语言的I/O操作,而一般使用系统提供的文件内存映射方法。 

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-11-09
while((ch= fgetc(fp))!=EOF)
printf("%02x ",(unsigned char)ch) ;
如果要回车什么的话(就是一行16个这样的格式)就自己加吧
谢谢采纳
有问题继续本回答被提问者和网友采纳
第2个回答  2011-10-10
fgetc(fp)返回的是读到的内容,所以你的输出语句应该是:printf("%x",ch) ;
去掉*后,还是一样的话,那就是你的fp文件指针并没有指向正确的文件,你需要判断下你的fp是否为NULL,如果是表示你的文件打开错误了
第3个回答  2011-10-10
你的ch定义的是什么啊??如果你定义的是char ch,那就printf("%x",ch) ;
如果是char *ch,那么*ch= fgetc(fp) ;
第4个回答  2020-12-17

bin:二进制文件