main()
成都創(chuàng)新互聯(lián)公司專注于天峻網(wǎng)站建設服務及定制,我們擁有豐富的企業(yè)做網(wǎng)站經驗。 熱誠為您提供天峻營銷型網(wǎng)站建設,天峻網(wǎng)站制作、天峻網(wǎng)頁設計、天峻網(wǎng)站官網(wǎng)定制、微信平臺小程序開發(fā)服務,打造天峻網(wǎng)絡公司原創(chuàng)品牌,更為您提供天峻網(wǎng)站排名全網(wǎng)營銷落地服務。
{
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 用于把一無符號整數(shù)翻譯成二進制串
void PRINTBIT(unsigned int number)
{
unsigned int i;
unsigned int ckecker=1;//ckecker 用于指示由右至左的位數(shù),初置設為 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進制*/