В основном я сделал простую программу для чтения строки текста, но всякий раз, когда я запускаю программу, я получаю ошибку
no match for 'operator>>' (operand types are 'QFile' and 'QString')
while(file >> name >> month >> day >> year >> subject >> level >> apages >> total >> one >> two >> three >> four >> five >> six >> seven >> eight >> nine >> ten)
и еще одна ошибка:
expected unqualified-id before '<<' token
QDebug << QString(name);
Я пытался найти что-то в сети в течение часа, но я действительно не мог найти ничего, что сработало или что я мог понять. Я был бы очень признателен за любые материалы, которые могут быть предоставлены.
соответствующий код:
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QtCore/QCoreApplication>
#include <QtCore>
#include <QFile>
#
#include <QDebug>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_pushButton_clicked()
{
QString name, month, subject, level;
int day, year, apages, total, one, two, three, four, five, six, seven, eight, nine, ten;
QFile file("C:/Users/brandan/Desktop/GUIPrograms/Kumon.txt");
if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
return;
while(file >> name >> month >> day >> year >> subject >> level >> apages >> total >> one >> two >> three >> four >> five >> six >> seven >> eight >> nine >> ten)
{
QDebug << name << month << day << year << subject << level << apages << total << one << two << three << four << five << six << seven << eight << nine << ten;
}
}
Из информации API QFile кажется, что вы должны использовать, например, объект QTextStream
для использования операторов <<
и >>
. Что касается ошибки отладки: QDebug
- это имя класса, а не экземпляр в памяти. На странице QDebug кажется, что вы можете использовать qDebug()
.
QDebug
- это тип, вам нужно использовать экземпляр QDebug
который извлекается из функции qDebug()
:
qDebug() << a << b << c; ^^^^^^^^