本文目录一览:
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);
//**********************以上写*******************