×

c读取二进制文件信息

c读取二进制文件信息(c++二进制读写文件)

admin admin 发表于2023-03-21 17:27:08 浏览46 评论0

抢沙发发表评论

本文目录一览:

c语言用什么函数读取2进制文件内容

你怎么输出的?

二进制如果以文本输出,自然会有很多乱码。

你可以用"%x"格式输出看看

char

a;

a=fgetc(fp1);

printf("%c",

a);/*这样肯定有乱码*/

printf("%x",

a);/*这样就是16进制*/

c语言怎么用二进制方式读取文件

C语言中二进制文件的读取要用fread和fwrite来实现。 fwrite()与fprintf()是不同的。 fwrite将写入的数据作为文件的磁盘内容保存。fprintf将写入的数据的每个字符所对应的ASCII码作为文件的磁盘内容保存。fprintf做了一个转换的工作。-c读取二进制文件信息

请问如何用C语言显示读取的二进制文件内容,以二进制的形式显示,最好有具体的函数,谢谢

#include stdio.h

#include stdlib.h

//PRINTBIT 用于把一无符号整数翻译成二进制串

void PRINTBIT(unsigned int number)

{

unsigned int i;

unsigned int ckecker=1;//ckecker 用于指示由右至左的位数,初置设为 1

ckecker=8-1;//将 ckecker 中非零位移到其机器表示的最左边

//下一语句从左至右打印各位,每四位之间留一空隔

for (i=1;i=8;i++)

{

//打印 ckecker 非零位所对应的 number 中对应位

putchar((number ckecker)?'1':'0');

if (i%4==0)//每4位用空格隔开

putchar(' ');

ckecker=1; //准备打印 number 中的下一位

}

putchar('\n');

}

int main(void)

{

FILE *fp;

char *filename = "in1.dat";

char ch;

if((fp=fopen(filename,"rb"))== NULL )

{

printf("Can not open %s!\n",filename);

exit(0);

}

printf("原字符\t二进制\n");

ch=fgetc(fp);//取字符

while(!feof(fp))

{

putchar(ch);

putchar('\t');

PRINTBIT(ch);

ch=fgetc(fp);

}

fclose(fp);

return 0;

}

C语言链表读取二进制文件

关键代码应该是这样的

FILE *fp = fopen("file","rb");

char *p = node-data;

while(!feof(fp))

*p++ = fgetc(fp);

fclose(fp);

//**********************以上读*******************

FILE *fp = fopen("file","wb");

char *p = node-data;

while( p node-data+len)

fputc(fp,*p++);

fclose(fp);

//**********************以上写*******************