• 8670阅读
  • 5回复

[提问]qDebug无法输出QbyteArray对象中的值 [复制链接]

上一主题 下一主题
离线djnxqc
 

只看楼主 倒序阅读 楼主  发表于: 2014-12-08
    QByteArray buf;    
buf.resize(100);  
for(int i=0;i<100;i++)    {        
buf=i;    }
//  printf("%s",buf.data());//不能输出//    
std::cout<<"Send:"<<buf.data()<<endl;//不能输出QByteArray对象的值
qDebug(buf.data());//不能输出
qDebug("Sended!");//能输出
以上代码编译错误,为什么不能输出buf中的值呢(取消注视情况下)?请知道的回答下,谢谢啦!


离线uidab

只看该作者 1楼 发表于: 2014-12-08
你确定buf=i;这句编译的时候没有错误??
Qt给的例子都是
QByteArray ba;
ba.resize(5);
ba[0] = 0x3c;
ba[1] = 0xb8;
ba[2] = 0x64;
ba[3] = 0x18;
ba[4] = 0xca;
有时候为了工作直接获得答案,而我却失去了思考的乐趣!


飘啊飘,何时能安居!
离线dbzhang800

只看该作者 2楼 发表于: 2014-12-08
假定你发帖的时候做了省略,你代码中的QByteArray构造实际上没有问题。

可是,你这问题和QByteArray没有什么关系啊,无论传给 qDebug() 还是cout,你用的都是 char * 指针。即使你不用QByteArray,而是直接构造:
const char *s =  "\0\1\2\3\4\5...\x64";

然后,你用printf、cout、qDebug 也该是同样结果吧?


离线dosmlp

只看该作者 3楼 发表于: 2014-12-08
qDebug()<<buf;
离线djnxqc

只看该作者 4楼 发表于: 2014-12-09
回 uidab 的帖子
uidab:你确定buf=i;这句编译的时候没有错误??
Qt给的例子都是
QByteArray ba;
ba.resize(5);
ba[0] = 0x3c;
....... (2014-12-08 16:55) 

粘贴代码时,下标自动没有了
离线djnxqc

只看该作者 5楼 发表于: 2014-12-09
回 dbzhang800 的帖子
dbzhang800:假定你发帖的时候做了省略,你代码中的QByteArray构造实际上没有问题。
可是,你这问题和QByteArray没有什么关系啊,无论传给 qDebug() 还是cout,你用的都是 char * 指针。即使你不用QByteArray,而是直接构造:
const char *s =  "\0\1\2\3\4\5...\x64";
.. (2014-12-08 17:11) 

是的,这个我也发现了!
快速回复
限100 字节
 
上一个 下一个