char totalbuffer[2048] = {0};
Это инициализация массива, который я хочу. Я попытался поместить в main.cpp и мой заголовочный файл, qt creator keep показать ошибку.Как инициализировать массив с нулевым значением в приложении GUI GUI?
это мой .h код заголовка файла:
#ifndef QTPROJECT2_H
#define QTPROJECT2_H
#include <QDialog>
#include <QMainWindow>
#include <QtNetwork/QHostAddress>
#include <QLabel>
#include <QPushButton>
#include <QUdpSocket>
#include <QString>
#include <QTcpSocket>
#include <QDataStream>
#include <qstring.h>
#include <QStandardItem>
namespace Ui {
class QtProject2;
}
class QtProject2 : public QDialog
{
Q_OBJECT
public:
explicit QtProject2(QWidget *parent = 0);
~QtProject2();
void start(QString address, quint16 port);
char totalbuffer[2048]={0};
QStandardItemModel* ListModel;
private slots:
void on_pushButton_clicked();
public slots:
void startTransfer();
void disconnected();
void readyRead();
signals:
void socketReady();
private:
Ui::QtProject2 *ui;
QTcpSocket *client;
};
#endif // QTPROJECT2_H
это мой main.cpp кодирование:
#include "qtproject2.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QtProject2 w;
w.show();
char totalbuffer[2048]={0};
return a.exec();
}
это мой проект qtproject2.cpp: #include «qtproject2.h " #include "ui_qtproject2.h"
QtProject2::QtProject2(QWidget *parent) :
QDialog(parent),
ui(new Ui::QtProject2)
{
ui->setupUi(this);
}
QtProject2::~QtProject2()
{
delete ui;
QtProject2 Client2;
Client2.close();
}
void QtProject2::startTransfer()
{
ui->slabel->setText("Connected!");
}
void QtProject2::disconnected()
{
ui->slabel->setText("Disconnected!");
}
void QtProject2::readyRead()
{
client->waitForBytesWritten(1000);
client->waitForReadyRead(3000);
char CustomerData_MacAdd[][18]={"14:13:12:11:67:11","52:22:22:22:22:22", "14:22:44:55:22" };
char CustomerData_Username[][10]={"Robert","Alex","Ivan"};
QByteArray buffer1 = client->readLine();
char *temp = buffer1.data();
char buffer[1024]={0};
if (strncmp(temp,"*CLIENT",6)==0)
{
int j;
for(j=9;j<26;j++)
{ buffer[j-9]=temp[j];}
}else if(strncmp(temp,"*ALERT",5)==0)
{
int j;
for(j=8;j<25;j++)
{buffer[j-8]=temp[j];}
}
//char totalbuffer[2048]={0};
int k;
for (k=0;k<3;k++){
if (strncmp(buffer,CustomerData_MacAdd[k],16)==0){
strncat(totalbuffer,"User is in Queue : ",19);
strncat (totalbuffer,CustomerData_Username[k],size_t(CustomerData_Username[k]));
strncat(totalbuffer,"\n",2);
ui->label->setText(totalbuffer);
}}
ui->slabel->setText(buffer1);
}
void QtProject2::on_pushButton_clicked()
{
client = new QTcpSocket(this);
connect(client, SIGNAL(connected()),this, SLOT(startTransfer()));
connect(client, SIGNAL(disconnected()), this, SLOT(disconnected()));
connect(client, SIGNAL(readyRead()), this, SLOT(readyRead()));
/*Connect to User Define Port Address*/
client->connectToHost("127.0.0.1", 1234);
}
Фокус для ч ar totalbuffer [2048] = {0}; , я действительно не знаю, где я должен это поставить. Я искал google и stackoverflow, весь метод использует класс и вызывает в .cpp-файле. но мое приложение является графическим, а другое - консолью.
Что мне делать? Мне действительно нужна помощь. Цените помощь и спасибо вам, ребята ~
EDITED *** это ошибка показывает.
error assigning to an array from an initializer list
Я думаю, что список инициализации не может поместить в заголовочный файл и main.cpp так, как я собираюсь инициализировать массив? как C++ визуального студии, используя открытую переменную ....
Почему бы вам не показать нам ошибку? Кроме того, вы должны использовать 'QString' или' QByteArray' для управления массивами символов. –
Показать * что * ошибка? Измените свой вопрос более полным кодом (желательно [SSCCE] (http://sscce.org/)), а также добавьте полный и неотредактированный список ошибок, которые у вас есть. –
извините, ребята .. я отредактировал. Я разрабатываю приложение GUI GUI, имею main.cpp qtproject2.h qtproject2.cpp Я не знаю, куда положить для публичного списка инициализации –