QT中QByteArray与char、int、float之间的互相转化
要用SQLite数据库去保存一段定长的char型数组,里面可能有\0等字符,所以当作字符串varchar处理铁定丢失数据,所以要用二进制保存BLOB,这样对应的QT数据类型要用QByteArray进行处理,原来只用到QByteArray转换成 char* 类型,其它的转换还没搞过,一弄发现还是有些门道,为了以后不再继续造轮子,就先写出来,标记一下。方式1 传统方式data()和size()函数 (
1.问题来源
要用SQLite数据库去保存一段定长的char型数组,里面可能有\0等字符,所以当作字符串varchar处理铁定丢失数据,所以要用二进制保存BLOB,这样对应的QT数据类型要用QByteArray进行处理,原来只用到QByteArray转换成 char* 类型,其它的转换还没搞过,一弄发现还是有些门道,为了以后不再继续造轮子,就先写出来,标记一下。
2.QByteArray与char*的转换
2.1 QByteArray 转 char*
方式1 传统方式data()和size()函数 (方便)
|
1 2 3 4 5 6 7 8 9 |
|
方式2 memcpy()方式 (灵活)
|
1 2 3 4 5 6 7 8 |
|
2.2 char* 转 QByteArray
方法1 利用构造函数 (方便)
|
1 2 3 4 5 6 7 8 9 10 |
|
方式2 memcpy()方式 (灵活)
|
1 2 3 4 5 6 7 8 9 10 11 |
|
3.QByteArray与int 以及int[] 的转换
3.1. int 与 QByteArray 互转
[1] int 转 QByteArray
|
1 2 3 4 5 6 7 |
|
[2]QByteArray 转 int
|
1 2 3 4 5 |
|
3.2. int[] 与 QByteArray 互转
[1] int[] 转 QByteArray
|
1 2 3 4 5 6 7 8 9 |
|
[2]QByteArray 转 int[]
|
1 2 3 4 5 |
|
4.QByteArray与float 以及float[] 的转换
其实完全可以参考第3节,int的用法.
4.1. float[] 与 QByteArray 互转
[1] float[] 转 QByteArray
|
1 2 3 4 5 6 7 |
|
[2]QByteArray 转 float[]
|
1 2 3 4 |
|
4.2. float 与 QByteArray 互转
可以安全参考int。
到此这篇关于QT中QByteArray与char、int、float之间的互相转化的文章就介绍到这了,更多相关QT QByteArray与char、int、float互相转化内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
更多推荐




所有评论(0)