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

QString 与QDataStream 字节大小怎么算????

7
回复
12101
查看
[复制链接]
累计签到:168 天
连续签到:1 天
来源: 2014-1-7 15:11:05 显示全部楼层 |阅读模式
5Qter豆
QDataStream sendOut(&outBlock,QIODevice::WriteOnly);
    sendOut.setVersion(QDataStream:t_4_0);
    QString currentFileName = fileName.right(fileName.size() - fileName.lastIndexOf('/') - 1);//倒着数,计算位置
    sendOut  <<qint64(0) << qint64(0) << currentFileName <<ipAdress  ;

    qDebug() << tr("ipAdressSize;") << ipAdress.size();
    qDebug() << tr("currentName:") << currentFileName; //名字没存进去
    qDebug() << tr("da xiao :") << currentFileName.size(); //大小
    qDebug() << tr("zong da xioa :") << outBlock.size();

结果:
"ipAdressSize;" 9
"currentName:" "client.cpp"
"da xiao :" 10
"zong da xioa :" 62

qint64 不就是8个字节吗??
这个结果是怎么得来的???

最佳答案

查看完整内容

我不是很清楚你的问题的主题,如果你想知道该对象占用的所有内存空间,用sizeof。 也许你想知道的是里面内容的大小,这个要看你当前所属类的size函数返回什么,如QString返回字符数,QIODevice返回的是当前device的大小
回复

使用道具 举报

尚未签到

2014-1-7 15:11:06 显示全部楼层
cll 发表于 2014-1-7 16:43
呵呵,突然想起来,you said that 那个内存指的是sendout中还是outblock???跟缓存是一个概念吧 ...

我不是很清楚你的问题的主题,如果你想知道该对象占用的所有内存空间,用sizeof。

也许你想知道的是里面内容的大小,这个要看你当前所属类的size函数返回什么,如QString返回字符数,QIODevice返回的是当前device的大小

点评

cll
不好意思了,不太明白“QIODevice返回的是当前device的大小” 什么意思,QIODevice 代表QImage,Picture,,之类的吗? QDataStream 和QByteArray 算是那个吗??  详情 回复 发表于 2014-1-7 21:48
回复

使用道具 举报

尚未签到

2014-1-7 15:46:39 显示全部楼层
如果你想知道它们占内存的大小,请用sizeof

点评

cll
呵呵,突然想起来,you said that 那个内存指的是sendout中还是outblock???跟缓存是一个概念吧  详情 回复 发表于 2014-1-7 16:43
cll
谢谢,我想知道我的一个字符串例如“hello”,在 上例子中sendOut 和outBlock占多大的空间,怎么计算的,因为我在服务端要读数据,控制不好读取的字节大小,套接字总是不能正确接受  详情 回复 发表于 2014-1-7 16:35
回复

使用道具 举报

累计签到:168 天
连续签到:1 天
2014-1-7 16:35:18 显示全部楼层
Joey_Chan 发表于 2014-1-7 15:46
如果你想知道它们占内存的大小,请用sizeof

谢谢,我想知道我的一个字符串例如“hello”,在 上例子中sendOut 和outBlock占多大的空间,怎么计算的,因为我在服务端要读数据,控制不好读取的字节大小,套接字总是不能正确接受
回复

使用道具 举报

累计签到:168 天
连续签到:1 天
2014-1-7 16:43:04 显示全部楼层
Joey_Chan 发表于 2014-1-7 15:46
如果你想知道它们占内存的大小,请用sizeof

呵呵,突然想起来,you said that 那个内存指的是sendout中还是outblock???跟缓存是一个概念吧
回复

使用道具 举报

累计签到:168 天
连续签到:1 天
2014-1-7 21:48:51 显示全部楼层
Joey_Chan 发表于 2014-1-7 20:28
我不是很清楚你的问题的主题,如果你想知道该对象占用的所有内存空间,用sizeof。

也许你想知道的是里面 ...

不好意思了,不太明白“QIODevice返回的是当前device的大小” 什么意思,QIODevice 代表QImage,Picture,,之类的吗? QDataStream 和QByteArray 算是那个吗??
回复

使用道具 举报

尚未签到

2014-1-8 09:38:20 显示全部楼层
cll 发表于 2014-1-7 21:48
不好意思了,不太明白“QIODevice返回的是当前device的大小” 什么意思,QIODevice 代表QImage,Pict ...

我只是举个例子,你要看文档里面关于这个类的size函数是返回什么数据

点评

cll
谢谢,虽然无鱼,我得到了比鱼更有有益的渔,,  详情 回复 发表于 2014-1-8 09:44
回复

使用道具 举报

累计签到:168 天
连续签到:1 天
2014-1-8 09:44:04 显示全部楼层
Joey_Chan 发表于 2014-1-8 09:38
我只是举个例子,你要看文档里面关于这个类的size函数是返回什么数据

谢谢,虽然无鱼,我得到了比鱼更有有益的渔,,
回复

使用道具 举报

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

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