#ifndef QFILEVSIFSTREAM_H
#define QFILEVSIFSTREAM_H

#include <QWidget>
#include <QFile>
#include <QtDebug>
#include <fstream>
#include <ctime>

using namespace std;

namespace Ui {
class QFileVSifstream;
}



class QFileStopWatch
{
public:
 QFileStopWatch() : start(std::clock()){}
 ~QFileStopWatch();
private:
 std::clock_t start;
};

class ifstreamStopWatch
{
public:
 ifstreamStopWatch() : start(std::clock()){}
 ~ifstreamStopWatch();
private:
 std::clock_t start;
};




class QFileVSifstream : public QWidget
{
    Q_OBJECT
    
public:
    explicit QFileVSifstream(QWidget *parent = 0);
    ~QFileVSifstream();
    
private slots:
    void on_qfileButton_clicked();
    void on_ifstreamButton_clicked();

private:
    Ui::QFileVSifstream *ui;
};

#endif // QFILEVSIFSTREAM_H














#include "qfilevsifstream.h"
#include "ui_qfilevsifstream.h"

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

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



QFileStopWatch::~QFileStopWatch()
{
    QString filecontents;
    QString line = "";
    QFile file("in.txt");
    file.open(QIODevice::ReadOnly | QIODevice::Text);

    while (!file.atEnd()) {
        line = file.readLine().constData();
        filecontents.append(line);
    }

    clock_t total = clock()-start;
    qDebug() << "Total ticks: " << total << "/ Total seconds: " << double(total)/CLOCKS_PER_SEC;

    file.close();
}



ifstreamStopWatch::~ifstreamStopWatch()
{
    string filecontents;
    string line = "";
    ifstream file;

    file.open("in.txt");

    while (!file.eof())
    {
        getline(file, line);
        filecontents.append(line);
    }

    clock_t total = clock()-start;
    qDebug() << "Total ticks: " << total << "/ Total seconds: " << double(total)/CLOCKS_PER_SEC;

    file.close();
}






void QFileVSifstream::on_qfileButton_clicked()
{
    qDebug() << "Started QFileStopWatch test.";
    QFileStopWatch test_qfile;
}



void QFileVSifstream::on_ifstreamButton_clicked()
{
    qDebug() << "Started ifstreamStopWatch test.";
    ifstreamStopWatch test_ifstream;
}
