c++ 文件操作二进制模式的读写问题
2010-05-28 23:09
477 查看
我这儿说得是写入与读出时,字节的次序问题。
比如说 int num=10000;
其十六进制应为:
00 00 27 10
但使用ofstream写入到文件的结果却是:
10 27 00 00
字节次序相反。
如果把这个结果读出,仍然能够正确得出10,000。也就是说,如果一个数据是自己写入,自己读出,没有问题
我以前都这样,或者别人的数据也是使用这种方式写入的。
但是这次,我碰到了问题,在分析文件后发现,这文件中的二进制是能直接转换为对应十进制的,也就是说,数据是10,000
,文件中的十六进制是00 00 27 10
这样使用ofsteam直接读出的数据就是270,991,360,二进制就是10 27 00 00
也就是说这个次序要注意
这个问题应该跟计算机硬件有关,Intel机与某些的非Intel机的字节读写次序不同
而我使用的那个数据库就不是Intel下产生的
在这儿提醒一下,操作二进制文件前,如果有读写非字节类型数据的,最好先看一下文件的数据字节序
比如说 int num=10000;
其十六进制应为:
00 00 27 10
但使用ofstream写入到文件的结果却是:
10 27 00 00
字节次序相反。
如果把这个结果读出,仍然能够正确得出10,000。也就是说,如果一个数据是自己写入,自己读出,没有问题
我以前都这样,或者别人的数据也是使用这种方式写入的。
但是这次,我碰到了问题,在分析文件后发现,这文件中的二进制是能直接转换为对应十进制的,也就是说,数据是10,000
,文件中的十六进制是00 00 27 10
这样使用ofsteam直接读出的数据就是270,991,360,二进制就是10 27 00 00
也就是说这个次序要注意
这个问题应该跟计算机硬件有关,Intel机与某些的非Intel机的字节读写次序不同
而我使用的那个数据库就不是Intel下产生的
在这儿提醒一下,操作二进制文件前,如果有读写非字节类型数据的,最好先看一下文件的数据字节序
相关文章推荐
- C++二进制文件读写简单操作
- C/C++文件的操作--二进制文件读写
- 【C++】小心使用文件读写模式:回车('\r') 换行('\n')问题的一次纠结经历
- C++ 文件IO操作 读写
- C++文件读写操作(二)逐字符读取文本和逐行读取文本
- 关于C/C++使用stdio读写文件的问题
- 文件读取C++文件读写操作(三)如何统计文本的行数及如何读取文件某一行内容
- C++中对文件进行读写操作
- C++二进制文件读写
- 文件读写&访问sdcard&文件操作模式
- C++中对文件进行读写操作
- C/C++ 文件读写操作总结
- C/C++ 文件读写操作总结
- Qt实现GUI的二进制文件读写操作(源码分析+工程打包+测试例子)
- c++二进制文件读写的程序举例
- Java 二进制文件读写操作
- C++二进制文件读写
- [转]C/C++ 文件读写操作总结
- c/c++有关文件读写的操作
- C#实现的基于二进制读写文件操作示例