2017-01-31 11 views
1

Используя Qt, вы хотите преобразовать число (цифру) в QByteArray в int. Вот код:QT Как преобразовать QByteArray число в int;

QByteArray ba; 
ba = serial->readAll(); //ba[0] = 6; 

int sum = ba[0] + 10;  //want it to do this i.e 10 + 6 
qDebug()<<sum;   //output becomes nothing, I expected it to be 16; 

Как преобразовать извлеченное значение в целое, так что я могу использовать его в арифметике, как показано выше.

+1

У вас есть опечатка - num/sum. Также что делает «qDebug() << ba [0]» print? –

+0

Спасибо, исправлено. или вниз? – tmoeti

ответ

1

Посмотрите на toInt метод

Таким образом, вы можете преобразовать его так:

bool ok;     // indicates success or failure 
int sum = ba.toInt(&ok); 

В качестве альтернативы вы можете сначала преобразовать вам QByteArray в строку (например, получение char * с помощью вызова функции data члена, а затем сделать что вы хотите с этой строкой.

+0

Спасибо, Иваскевич, он работал так хорошо. – tmoeti

+0

@tmoeti Принять как ответ, если это решило вашу проблему –

+1

@FlorentUguet Как принять ответ? Окей, сделано. – tmoeti