找回密码
 立即注册
收起左侧

二进制文本读写中版本号怎么使用啊

1
回复
8881
查看
[复制链接]

尚未签到

来源: 2013-6-29 09:20:13 显示全部楼层 |阅读模式
1Qter豆
看教材中
QDataStream out(&file);
out<<(qint32)0xA0B0C0D0;//写入一个魔术数字
out<<(qint32)123;//写入版本号
问题一:是不是任何版本对qint32类型的数据读写的形式都一样啊?无论哪个版本都能正确读出魔术数字和版本号。
问题二:123是啥意思啊。自己随便定义一个数字表示版本号吗?感觉应该这么写才行
qint32 version = 获取当前编译器支持的版本。
out<<version;
读文件时使用in.setVersion(version)就行
怎么获取当前编译器支持的版本啊?

最佳答案

查看完整内容

这里使用幻数和version是用来判断文件格式和使用哪个版本的QDataStream的, 第一个问题,使用不同版本的QDataStream读写文件形式不一样,不同的文件读出的幻数不同,这样就可以判断这个文件是不是自己程序生成的; 第二个问题,123是自己自定义的,这只是一个自定义的数字,用来判断自己的程序版本,可以随意改写。这里只是例子,为了便于理解,比如比123小的数字表明程序比当前程序旧,而比123大的数字,表示程序比当前程序新。 ...
回复

使用道具 举报

累计签到:1572 天
连续签到:1 天
2013-6-29 09:20:14 显示全部楼层
这里使用幻数和version是用来判断文件格式和使用哪个版本的QDataStream的,

第一个问题,使用不同版本的QDataStream读写文件形式不一样,不同的文件读出的幻数不同,这样就可以判断这个文件是不是自己程序生成的;

第二个问题,123是自己自定义的,这只是一个自定义的数字,用来判断自己的程序版本,可以随意改写。这里只是例子,为了便于理解,比如比123小的数字表明程序比当前程序旧,而比123大的数字,表示程序比当前程序新。

当然可以使用QDataStream的version()函数来获取其版本号。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了