当前位置: 代码迷 >> QT开发 >> Qt for windows下的一个有意思的情况解决思路
  详细解决方案

Qt for windows下的一个有意思的情况解决思路

热度:95   发布时间:2016-04-25 04:56:16.0
Qt for windows下的一个有意思的情况
闲来无事,随便折腾,发现了一个有意思的情况。
C/C++ code
int main(int argc, char *argv[]){    QApplication a(argc, argv);    char buffer[100];    QString name = QFileDialog::getOpenFileName();    QFile file(name);    file.open(QIODevice::ReadOnly);    file.read(buffer, 100);    QByteArray byte(buffer);    qDebug() << byte.length()    //qDebug() << byte.toHex();    return a.exec();}

在window下创建了一个a.txt文件,文件里面写的123,由windows资源管理器说明文件大小3字节,qDebug()<<byte.length()输出的结果是5字节,当把qDebug() << byte.toHex();注释取消后,打印qDebug()<<byte.length()是3字节。。。。。
果断泪奔了。。。

------解决方案--------------------
char buffer[100]; 
这个buffer没有初始化,内容是随机的,当你读文件的时候前三个字节是文件的内容,后面就是随机的东西,
加上 for(int i=0;i<100;i++) buffer[i] = 0; buffer内容初始化为0就没有问题了。

  相关解决方案