{
FILE * stream
int i
stream = fopen("/tmp/fwrite","r")
fread(s,sizeof(struct test),nmemb,stream)
fclose(stream)
for(i=0i<nmembi++)
printf("name[%d]=%-20s:size[%d]=%d/n",i,s[i].name,i,s[i].size)
}
供参考
C语言中二进制文件的读取要用fread和fwrite来实现。 fwrite()与fprintf()是不同的。 fwrite将写入的数据作为文件的磁盘内容保存。fprintf将写入的数据的每个字符所对应的ASCII码作为文件的磁盘内容保存。fprintf做了一个转换的工作。你怎么输出的?二进制如果以文本输出,自然会有很多乱码。
你可以用"%x"格式输出看看
char
a
a=fgetc(fp1)
printf("%c",
a)/*这样肯定有乱码*/
printf("%x",
a)/*这样就是16进制*/
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)