main()
成都创新互联公司专注于天峻网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供天峻营销型网站建设,天峻网站制作、天峻网页设计、天峻网站官网定制、微信平台小程序开发服务,打造天峻网络公司原创品牌,更为您提供天峻网站排名全网营销落地服务。
{
FILE * stream;
int i;
stream = fopen("/tmp/fwrite","r");
fread(s,sizeof(struct test),nmemb,stream);
fclose(stream);
for(i=0;inmemb;i++)
printf("name[%d]=%-20s:size[%d]=%d/n",i,s[i].name,i,s[i].size);
}
供参考
#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;
}
你怎么输出的?
二进制如果以文本输出,自然会有很多乱码。
你可以用"%x"格式输出看看
char
a;
a=fgetc(fp1);
printf("%c",
a);/*这样肯定有乱码*/
printf("%x",
a);/*这样就是16进制*/