2020년 3월 1일 일요일

QT : char 케스팅하여 사용하기

  < QT >
1. [형변환] char* to QBytearray & QBytearray to char*
1.1 char* to QBytearray

char* char* To QByteArray
QByteArray databuf;

1) databuf = QByteArray(reinterpret_cast<char*>(buf), 10);
2) databuf = QByteArray((char*)buf, 10);
3) databuf = QByteArray::fromRawData(buf, 10);

1.2 QBytearray to char*

QByteArray To char*
QByteArray data;

1) const std::size_t count = data.size();
2) unsigned char* hex =new unsigned char[count];
3) std::memcpy(hex,data.constData(),count);
4) char* pData = data.data();

2. QString to char* || char* to QString
2.1. QString to char 배열

QString k = "CRAZYYYQT";
char ab[16];

sprintf(ab,"%s",(const char *)((QByteArray)(k.toLatin1()).data()) );
sprintf(ab,"%s",(const char *)((QByteArray)(k.toStdString()).data()));
sprintf(ab,"%s",(const char *)k.toStdString().c_str()  );

또는 strcpy 함수를 사용하여

strcpy( ab, k.toStdString().c_str());
toLatin1() 함수의 리턴 type이 QByteArray 객체이다.

2.2. QString to char 포인터
char 포인터를 사용할 때 주의할 점은 const type 으로 지정해줘야 한다.

QString k = "CRAZYYYQT";

const char* p = k.toStdString().c_str();

2.3. char 포인터 to QString

char* ch = "ABC";

QString str = QString(ch);
QString str2 = QString("%1").arg(ch);
QString str3 = QString::fromUtf8(ch);












댓글 없음:

댓글 쓰기