如何从 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);
}
最佳答案
你的代码是错误的,所以我决定完全重写它。
我认为这是正确的方法:
将行转换为 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/