qt写入double数组到txt文件后再次启动后读取都是0

Hi~770 Hi~770 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

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";

a903265446

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,注释较详细,具有实用性,希望有所帮助。

zhangbenkui

qt实现串口读取GPS信息

qt实现GPS信息读取,基于NMEA-0183 协议,含注释与完整运行软件,值得参考

cauthycheng

Qt XlsxWriter

基于QtXlsx库的一个简单的例子,实现从bin文件中读取double数据并存入xlsx文件中。

wylnii
评论 3
收藏 已收藏
分享
返回顶部
Hi~770
C++ 语言 65,214 成员 250,514 内容