如下代码:输入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