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

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就没有问题了。