如何在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);
}
答案 0 :(得分:2)
你的代码错了所以我决定完全改写它。
我认为这是正确的方法:
将该行转换为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 ++中的标准库。