• 3052阅读
  • 2回复

[提问]Qt新手求帮助 qDebug显示出错 [复制链接]

上一主题 下一主题
离线explorer
 

只看楼主 倒序阅读 楼主  发表于: 2015-03-21
关键词: qDebug显示问题
把一个32位的整数,每八位用一个char来存放。例如,quint32 c=0x31323334;把它放到一个ch【4】字符串中
然后用qDebug输出字符串ch[],但是显示不正确。
代码如下:

        quint32 c=0x31323334;
        int l=sizeof(c);//l为4          
        char ch[l];
        int i;
        for(i=0;i<=l-1;i++)      //ch[0]=0x31,ch[1]=0x32,ch[2]=0x33,ch[3]=0x34
            {ch=c>>(l-1-i)*8; //把整数移位8的倍数位,依次把一个字节赋给字符串。
            }
        qDebug()<<ch<<endl;//用qDebug()输出字符串

困惑是:
           qDebug理应输出“1234”,但是确是“1234P价巅皊爈`6X幺愮类韫”

不知是哪里出错了?
离线dbzhang800

只看该作者 1楼 发表于: 2015-03-21
qDebug显示没问题i,是你C/C++基础没过关造成的。C里面,你想存4个字符的字符串,至少也要是 char[5]吧?
离线explorer

只看该作者 2楼 发表于: 2015-03-21
回 dbzhang800 的帖子
dbzhang800:qDebug显示没问题i,是你C/C++基础没过关造成的。C里面,你想存4个字符的字符串,至少也要是 char[5]吧? (2015-03-21 15:26) 

恩,谢谢大侠指正!命中要害!最近看QByteArray看多了,搞混了,以为最后一字节是系统自己补上的。
快速回复
限100 字节
 
上一个 下一个