#include "mainwindow.h" #include "ui_mainwindow.h" #include <QSqlDatabase> #include <QMessageBox> #include <QDebug> #include<QSqlError> #include<stdio.h> #include<stdlib.h> #include <QFileDialog> #include"mat.h" #include"matrix.h" QSqlDatabase db; MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow) { ui->setupUi(this); db = QSqlDatabase::addDatabase("QMYSQL"); db.setHostName("localhost"); db.setPort(3306); db.setDatabaseName("demo"); db.setUserName("root"); db.setPassword("123456"); bool ok = db.open(); if (ok){ QMessageBox::information(this, "infor", "success"); } else { QMessageBox::information(this, "infor", "open failed"); qDebug()<<"error open database because"<<db.lastError().text(); } /*------------------------------------导入.mat文件-------------------------------------------------*/ //打开选择文件对话框,获取文件路径 QString File_Path = QFileDialog::getOpenFileName(this, tr("选择MAT文件"), ".", tr("MAT文件 (*.mat)")); QByteArray ba = File_Path.toLatin1(); const char *rootFile = ba.data(); MATFile *pmatFile = matOpen(rootFile, "r"); if (pmatFile == NULL) { QMessageBox::warning(NULL,tr("文件打开失败"),tr("mat文件打开失败"),QMessageBox::Yes); return; } // 获取文件中变量var; mxArray* Array1 = matGetVariable(pmatFile, "RBR"); //先与变量绑定 mxArray* pF = mxGetField(Array1,0,"data"); //再获取其中域的数据 matClose(pmatFile); // 获取矩阵数据行数; int row = mxGetM(pF); qDebug() << row<<endl; // 获取矩阵数据列数; int column = mxGetN(pF); qDebug() << column <<endl; } MainWindow::~MainWindow() { delete ui; }这个程序为什么会显示程序异常错误
时间: 2024-04-23 12:22:55 浏览: 118
moc.exe 解决moc过程中不支持处理enum包含#include头文件的语法。
5星 · 资源好评率100%
这个问题比较难回答,需要更多的信息。程序异常错误可能是由于多种原因导致的,例如内存不足、访问非法内存、代码逻辑错误等等。你可以查看程序的调试信息,找到导致异常的具体原因。你可以使用调试器,例如gdb或者Qt Creator自带的调试器,来帮助你找到问题所在。在调试过程中,你可以观察变量的值、跟踪函数的调用栈等等,来找到问题的根源。另外,你也可以尝试使用try-catch语句来捕获异常,以便更好地处理程序中的错误。
阅读全文