如下代码:输入1到30期望输出1到30,结果到13的时候,变成0 ,后面变成很大的数了,不知道是不是QT的BUG?
void 
Dialog::on_pushButton_out_clicked()
{
    //序列化
按钮单击
事件    QFile f("D:/serialization.txt");
    if(!f.open(QIODevice::WriteOnly | QIODevice::Text))
    {
        qDebug() << u8"文件打开
失败!" ;
        return;
    }
    QDataStream ds(&f);
    for(int i=0;i<30;i++)
    {
         ds << i ;
         qDebug()<<"<<"<<i;//30+i就正常,只有“i”就不正常,int改为float也正常
    }
    f.close();
    qDebug()<<u8"序列化保存成功!";
}
void Dialog::on_pushButton_in_clicked()
{
    QFile f("D:/serialization.txt");
        if(!f.open(QIODevice::ReadOnly | QIODevice::Text))
        {
            qDebug() << u8"文件打开失败!" ;
            return;
        }
        QDataStream ds(&f);
        int a;
        while(!ds.atEnd())
        {
            ds >> a;
            qDebug()<<">>"<<a;//这里
显示与输入不一致,从第13位起就不符合预期了
        }
         qDebug()<<u8"反序列化输出完毕!";
        f.close();
}
工程文件
 streamTest.zip (8 K) 下载次数:0