Qt 文件的读写,将读取的数据保存到Qvector

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    //文件的读取
    QFile file_1("C:\\Users\\L\\Desktop\\GPS.txt");
    QVector<int> array;

    if(file_1.open(QIODevice::ReadOnly))
    {

        QTextStream stream(&file_1);
        while(!file_1.atEnd())
        {
            int buf;
            QStringList list = stream.readAll().split(" ");
            QListIterator<QString> li(list);

            while(li.hasNext())
            {
                buf=li.next().toInt();
                array.append(buf);
            }
        }
    }

     //文件的写入
    QFile file_2("C:\\Users\\L\\Desktop\\新建文本文档.txt");
    if(file_2.open(QIODevice::WriteOnly | QIODevice::Text))
    {
        QTextStream out(&file_2);

        for(int a{0}; a<array.size(); a++)
            out<<array[a]<<" ";
    }
    file_2.close();

}

MainWindow::~MainWindow()
{
    delete ui;
}

 

  • 2
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Trk 文件是 TrackVis 软件使用的一种文件格式,用于存储神经纤维追踪数据。如果您希望将数据保存为 Trk 文件,可以使用 Qt文件流功能将数据写入文件。下面是一个简单的示例代码: ```cpp #include <QFile> #include <QDataStream> void saveTrkFile(const QString& filename, const QVector<QVector3D>& points, const QVector<QVector<int>>& lines) { QFile file(filename); if (!file.open(QIODevice::WriteOnly)) { // 文件打开失败 return; } QDataStream out(&file); out.setByteOrder(QDataStream::LittleEndian); // 写入头部信息 out.writeRawData("TRACK", 6); quint32 dim[3] = {points.size(), 1, 1}; out.writeRawData(reinterpret_cast<const char*>(dim), 12); float vox[3] = {1.0f, 1.0f, 1.0f}; out.writeRawData(reinterpret_cast<const char*>(vox), 12); float bb[6] = {0.0f, 0.0f, 0.0f, dim[0], dim[1], dim[2]}; out.writeRawData(reinterpret_cast<const char*>(bb), 24); quint32 npoints = points.size(); out.writeRawData(reinterpret_cast<const char*>(&npoints), 4); // 写入数据 for (const auto& p : points) { float xyz[3] = {p.x(), p.y(), p.z()}; out.writeRawData(reinterpret_cast<const char*>(xyz), 12); quint16 props = 0; out.writeRawData(reinterpret_cast<const char*>(&props), 2); } // 写入线数据 quint32 nlines = lines.size(); out.writeRawData(reinterpret_cast<const char*>(&nlines), 4); for (const auto& l : lines) { quint32 npts = l.size(); out.writeRawData(reinterpret_cast<const char*>(&npts), 4); for (int i = 0; i < l.size(); ++i) { out.writeRawData(reinterpret_cast<const char*>(&l[i]), 4); } quint16 props = 0; out.writeRawData(reinterpret_cast<const char*>(&props), 2); } // 关闭文件 file.close(); } ``` 这个函数接受一个文件名、点和线的集合,然后将数据写入 Trk 文件。其,点集合是一个 QVector<QVector3D> 类型,存储了每个点的坐标;线集合是一个 QVector<QVector<int>> 类型,每个 QVector<int> 存储了一条线的顶点索引。该函数使用 QDataStream 类将数据写入文件,需要注意的是,Trk 文件所有数据都是以小端字节序存储的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值