qt写入double数组到txt文件后再次启动后读取都是0
void MainWindow::update_slope_offset()
{
//把slope和offset数据存到文件里,下次直接取出来用
bool sloperet = slopefile.open(QIODevice::WriteOnly); //以读写形式打开slope文件,返回true打开成功
if(!sloperet)
{
qDebug() << "slope open falied:";
return;
}
QDataStream saveslope(&slopefile);
saveslope.setVersion(QDataStream::Qt_5_0);
for(int i=0;i<320*256;i++)
{
saveslope << slope[i];
}
slopefile.close();
bool offsetret = offsetfile.open(QIODevice::WriteOnly); //以读写形式打开offset文件
if(!offsetret)
{
qDebug() << "offset open falied:";
return;
}
QDataStream saveoffset(&offsetfile);
saveoffset.setVersion(QDataStream::Qt_5_0);
for(int i=0;i<320*256;i++)
{
saveoffset << offset[i];
}
offsetfile.close();
get_slope_offset(); //这里读的时候没问题,不是0
}
void MainWindow::get_slope_offset()
{
printf("slope[0]=%.6f,offset[0]=%.6f\r\n",slope[0],offset[0]);
//从文件中获取slope和offset
bool sloperet = slopefile.open(QIODevice::ReadOnly); //以读写形式打开slope文件,返回true打开成功
if(!sloperet)
{
qDebug() << "slope open falied:";
return;
}
QDataStream getslope(&slopefile);
getslope.setVersion(QDataStream::Qt_5_0);
for(int i=0;i<320*256;i++)
{
getslope >> slope[i];
printf("get slope[%d]=%.6f\r\n",i,slope[i]);
}
slopefile.close();
bool offsetret = offsetfile.open(QIODevice::ReadOnly); //以读写形式打开offset文件
if(!offsetret)
{
qDebug() << "offset open falied:";
return;
}
QDataStream getoffset(&offsetfile);
getoffset.setVersion(QDataStream::Qt_5_0);
for(int i=0;i<320*256;i++)
{
getoffset >> offset[i];
printf("get offset[%d]=%.6f\r\n",i,offset[i]);
}
offsetfile.close();
if((slope[0] > 0.0001 || slope[0] < -0.0001) && (offset[0] > 0.0001 || offset[0] < -0.0001))
{
flag = true;
}else
{
flag = false;
}
printf("slope[0]=%.6f,offset[0]=%.6f\r\n",slope[0],offset[0]);
}
我在工程开始的地方去调用get_slope_offset(),读出来的都是0,但是在写入之后,直接调用get_slope_offset(),数据是没问题的,就是下次启动再运行时,先调用get_slope_offset()读出来的都是0
相关推荐
QT 文件读取和写入
void NavaMap:: writemapdata() { QFile file("./mapdata"); if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) { QMessageBox::information(this,"","dfds"); return; } if(file.exists() == false) { QMessageBox::information(this,"","dfds"); } QTextStream out(&file); int length,value; QString str=""; int i,j; for(i = 0;i<MAX_GARAGE_NUM;i++) { length = pathing_result[i].count(); for(j=0;j<length;j++) { value = pathing_result[i].value(j); str += QString::number(value); } str += "\n"; } out<<str; str = "R"; out<<str<<"\n";
VS2022+Qt5.15.2+OpenCV4.8.0图像处理工程落地实践
图像处理软件开发常面临环境配置混乱、跨模块兼容性差、部署即崩溃等工程化瓶颈。其本质是C++构建体系(编译器/标准库)、GUI框架(Qt ABI)与计算机视觉库(OpenCV二进制接口)三者间的耦合失配。掌握VS2022对C++17及std::filesystem的稳定支持、Qt5.15.2作为LTS版本与OpenCV4.x预编译包的ABI兼容性,是构建可维护图像应用的技术基石。该组合在工业检测、医疗影像和教学平台等真实场景中验证了编译确定性、运行稳定性与功能可扩展性。本文聚焦VS2022环境下Qt5.15.
c++按行读写txt文件
在VS2008下自己写的c++txt文件输入输出,包括:逐行读取Txt、将每行按指定分隔符分解、string类型向数值型转换、内存内容写txt,注释较详细,具有实用性,希望有所帮助。
qt实现串口读取GPS信息
qt实现GPS信息读取,基于NMEA-0183 协议,含注释与完整运行软件,值得参考
Qt XlsxWriter
基于QtXlsx库的一个简单的例子,实现从bin文件中读取double数据并存入xlsx文件中。


