菜鸟学习系列(1)Qt学习之读写文件,QFile,QDataStream

1 篇文章 0 订阅

菜鸟学习系列(1)Qt学习之读写文件,QFile,QDataStream

  完成文件管理功能,使用qt编写读写文件。用户调用函数,给定读写的路径以及double类型的指针数组,把数据写入指定目录的磁盘。
  首先要学会使用几个类,QFile,QDataStream,QTextStream,QFileInfo。可以多使用Qt自带的帮助文档。以下是代码:Widget.h中

#ifndef WIDGET_H  
#define WIDGET_H  
#include <QWidget>

namespace Ui {
class Widget;
}

class Widget : public QWidget
{
    Q_OBJECT

public:
    explicit Widget(QWidget *parent = 0);
    ~Widget();

    bool writeData(QString strSetDir,QString strFileName,QString Suffix,double* pData,int nLen);
    int readData(QString strSetDir,QString strFileName,QString Suffix,double* pData,int& nLen);


private slots:
    void on_pushButton_clicked();

private:
    Ui::Widget *ui;

};

#endif // WIDGET_H

widget.cpp 代码:

#include "widget.h"
#include "ui_widget.h"
#include <QDataStream>
#include <QFile>
#include <QFileInfo>
#include <QDebug>  
//调试的时候经常使用如下定义:  
#define cout qDebug()<<"["<<__FILE__<<":"<<__LINE__<<"]"


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

}

Widget::~Widget()
{
    delete ui;
}
bool Widget::writeData(QString SetDir,QString strFileName,QString Suffix ,double* pData,int nLen)
{
    //创建文件


    QFile file(SetDir+strFileName+Suffix);
    bool isok = file.open(QIODevice::WriteOnly|QIODevice::Text);

    if(isok == true)
    {
        //创建数据流,和file关联,往数据流输入数据相当于向文件写数据
        QDataStream stream(&file);
        int i ;
        for(i=0;i<=nLen;i++)
            stream<<pData[i];
    }
    file.close();
    return true;
}

int Widget::readData(QString SetDir,QString strFileName,QString Suffix ,double* pRData,int& nLen)
{
    QFile file(SetDir+strFileName+Suffix);
    bool isok = file.open(QIODevice::ReadOnly|QIODevice::Text);

    if(isok == true)
    {
        //创建数据流,和file关联,往数据流输入数据相当于向文件写数据
        QDataStream stream(&file);
        int i ;
        for(i=0;i<=nLen;i++)
            stream>>pRData[i];
        cout<<pRData[0];
        cout<<pRData[1];

    }
    file.close();
}


void Widget::on_pushButton_clicked()  
{
    double array[3]= {1.0,2.0,3.0};//数组就是个指针

    writeData("../","test",".txt",array,3);
    double q[20];
    readData("../","test",".txt",q,3);
}

数组就是指针,如果定义成:
double* array[3]则说明是定义了三个数组指针,数组里面是三个指针,数组本身就是指针,数组名字是指针地址,名字[]代表值。

分享学习

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值