c++ - 寻找最大数 Qt

标签 c++ qt qfile

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

我已经试过了,但我无法理解。在这里,我从包含 2000 个 int(数字)的文件夹中取出一个文件。我将字符串转换为 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);

}

最佳答案

你的代码是错误的,所以我决定完全重写它。

我认为这是正确的方法:

  • 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++ 中的标准库。

关于c++ - 寻找最大数 Qt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23577768/

相关文章:

c++有效地获取具有索引的字符串的子字符串

c++ 比较各种长度 vector 并隔离 "unique"的算法,有点

c++ - Qt:将对象传递到每个窗口

c++ - 无法使用 QMediaPlayer 播放电影

c++ - Qt:检查文件夹中的文件是否已更改

c++ - 写出文件时出现奇怪的 glibc 错误

c++ - 为什么 std::string_view 在三元表达式中创建悬空 View ?

c++ - 从函数访问类

c++ - 如何在 root 用户拥有的文件夹中以编程方式创建文件

qt - QFile::copy 说 "can' t 用于输入的开源文件”?