首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

用fwrite将int跟char类型的变量写入二进制文件,用64位机器和32位机器,写出的二进制文件一样吗

2012-09-07 
用fwrite将int和char类型的变量写入二进制文件,用64位机器和32位机器,写出的二进制文件一样吗将32位机器上

用fwrite将int和char类型的变量写入二进制文件,用64位机器和32位机器,写出的二进制文件一样吗
将32位机器上写的二进制文件拷贝到64位机器上,文件一样吗?如果不一样,能转换成一样的文件吗?

[解决办法]
1、将32位机器上写的二进制文件拷贝到64位机器上,文件当然是一样的;
2、用fwrite将int和char类型的变量写入二进制文件,文件当然是不一样的,这个时候需要自己定义可移植类型,比如typedef unsigned int int32u_t之类的定义。
[解决办法]
当然是可以的,掌握好字节数和字节的顺序就没有问题,都用字节流来表达的话,是可以跨平台的。
[解决办法]
推荐使用WinHex软件查看文件或内存中的原始字节内容。

[解决办法]
应该是对的,保险一点的话,用工具查看二进制的字节数据,UltraEdit和Pspad还有Notepad++加插件都是可以的。

探讨

引用:

比如说
FILE *file = fopen("...", "wb");
int a = 1;
double b = 1.0;
fwrite(&a, sizeof(int), 1, file);
fwrite(&b, sizeof(double), 1, file);
fclose(file);
那么这段代码在32位上……

[解决办法]
尺寸没问题, 大小端需要统一。
[解决办法]
不同的系统之间传递文件是没有问题的。

热点排行