void Smallwindow::on_pushButton_clicked()
{
QFile file(QString("data.txt"));
quint16 qu16_a;int a=15;
file.open(QIODevice::WriteOnly);//追加
QDataStream out(&file);
out.setVersion(QDataStream::Qt_4_3);//改成TextStream时省略这句话
qu16_a=quint16(a);
out<<a;
QMessageBox::information(this,tr("Success"),tr("A data %1 in quint16 has been written to the file \"data.dat\".\n")
.arg(qu16_a));
}
void Smallwindow::on_pushButton_3_clicked()
{
QFile file(QString("data.txt"));
quint16 qu16_a;int a;
if(file.open(QIODevice::ReadOnly))
{
QMessageBox::information(this,tr("Button 2"),tr("Loaded\n"));
}
QDataStream in(&file);
in.setVersion(QDataStream::Qt_4_3);
in>>qu16_a;a=int(qu16_a);
QMessageBox::information(this,tr("Button 2"),tr("qu16_a=%1\na=%2\n").arg(qu16_a).arg(a));
}
要实现的功能很简单,往data.txt里写入一个quint16的数据(15),再读出来用对话框显示。
但是我读出的数据都是0。
无法验证写入是否正确。当我用QTextStream时,读写结果都是正确的。
我在另一个工程中也用了QDataStream读写文件,那里文件读写比这个复杂得多,也没有出错,不知道这里为什么出错了。
[ 此帖被peterxj108在2010-04-03 22:55重新编辑 ]