找到最大数量Qt

时间:2014-05-10 06:15:38

标签: c++ qt qfile

如何在Qt中找到文件中的最大数字。任何人都可以向我详细解释,因为我是Qt的新手。

我已经尝试但我无法理解。在这里,我从包含2000 int s(数字)的文件夹中获取了一个文件。我将字符串转换为int,现在我想找到文件中所有int中的最大数字:

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QString>
#include <QFile>
#include <QDebug>

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

MainWindow::~MainWindow()
{
    delete ui;
}
QString ReadAll;
int i;
//int iMax = array[0];

void MainWindow::on_pushButton_pressed()
{

    QFile file("/home/path");
    if (!file.open(QIODevice::ReadOnly))
    {
        qDebug()<<"error";
    }
    QTextStream in(&file);


    while(!in.atEnd())
    {
        qDebug()<<ReadAll;
      ReadAll=in.readAll();
        qDebug()<<ReadAll;
    }
    file.close();
        qDebug()<<ReadAll;

        QStringList List=ReadAll.split(QRegExp("\n"),QString::SkipEmptyParts);
        int StrListInt[List.count()];

        i=0;

        foreach(QString Str, List)
        {
            qDebug()<<Str;

            StrListInt[i]=Str.toInt();
            qDebug()<<"spliting"<<QString::number(StrListInt[i]);
        }

    ui->textEdit->setText(ReadAll);

}

1 个答案:

答案 0 :(得分:2)

你的代码错了所以我决定完全改写它。

我认为这是正确的方法:

  • read line by line

  • 将该行转换为Int。

  • 如果需要,使用qMax()更新当前最大值。

    QFile file(QStandardPaths::locate(QStandardPaths::HomeLocation));
    if (!file.open(QIODevice::ReadOnly))
        qDebug() << file.errorString();
    
    QTextStream in(&file);
    
    QString string;
    int currentMaximum = INT_MIN;
    
    while (!in.atEnd()) {
        string = in.readLine();
        currentMaximum = qMax(currentMaximum, string.toInt());
    }
    

免责声明:我个人不会将Qt用于这么简单的任务,只是C ++中的标准库。