Осваиваю qt, нужно реализовать запись структуры worker из текстовых полей в бинарный файл workers.dat а затем считать все записи из этого файла и вывести в MessageBox в порядке возрастания wsalary
#include <QFile>
#include <QDataStream>
#include <QMessageBox>
using namespace std;
const char FName[] = "workers.dat";
struct worker{
string wname;
string wlastname;
int wsalary;
};
QDataStream &operator >> (QDataStream &stream, const worker &A) {
stream >> A.wname; //invalid operands to binary expression('QDataSDtream' and 'const std::string')
stream >> A.wlastname;//invalid operands to binary expression('QDataSDtream' and 'const std::string')
stream >> A.wsalary//invalid operands to binary expression('QDataSDtream' and 'const std::string')
}
void MainWindow::on_ReadFilepushButton_clicked()
{
worker man;
QString s = "";
QFile file (FName);
QDataStream stream(&file);
file.open(QIODevice::ReadOnly);
//записать в цикле содержимое файла в QString s
file.close();
QMessageBox::about(this, FName, s);
}
С записью структуры в файл проблем вроде нет, а с чтением непонятно что делать: как передать содержимое в QString s, так же непонятно как правильно реализовать цикл для записи содержимого файла в QString s
Итоговый правильный вариант
#include <QFile>
#include <QDataStream>
#include <QMessageBox>
using namespace std;
const char FName[] = "workers.dat";
struct worker{
QString wname;
QString wlastname;
int wsalary;
};
void MainWindow::on_ReadFilepushButton_clicked()
{
worker man;
QString s = "";
QFile file (FName);
QDataStream output(&file);
int i = 0;
if(file.open(QIODevice::ReadOnly)){
while(!output.atEnd()){
output >> man.wname >> man.wlastname >> man.wsalary;
i++;
s += QString::number(i) + ") "
+ man.wname + " "
+ man.wlastname + " "
+ QString::number(man.wsalary) + "\n";
}
file.close();
QMessageBox::about(this, FName, s);
} else
QMessageBox::critical(this, FName, "file does not exist");
}
Виртуальный выделенный сервер (VDS) становится отличным выбором
Щас дошёл до темы в webxml - аутентификация пользователей и есть пару вопросов: 1) Ест такой код:
Полностью конкретного ответа на вопрос не нашел в инете, поэтому ищу помощи тут
Как при наведении мышки узнать соответствует ли пиксель данному цвету или нет?