Russian Qt Forum

Qt => Общие вопросы => Тема начата: QtProger от Октябрь 20, 2009, 15:49



Название: error: switch quantity not an integer
Отправлено: QtProger от Октябрь 20, 2009, 15:49
Добрый день. Помогите пожалуйста. Компилятор выдает ошибку : error: switch quantity not an integer. Ошибка в третьей строке. Не могу понять в чем дело.

Код
C++ (Qt)
uchar hexConverter::charToNum(QChar c)
{
   switch(c)//тут ошибка
   {
       case '0': return 0;
       case '1': return 1;
       case '2': return 2;
       case '3': return 3;
       case '4': return 4;
       case '5': return 5;
       case '6': return 6;
       case '7': return 7;
       case '8': return 8;
       case '9': return 9;
       case 'A': return 10;
       case 'B': return 11;
       case 'C': return 12;
       case 'D': return 13;
       case 'E': return 14;
       case 'F': return 15;
   }
}


Название: Re: error: switch quantity not an integer
Отправлено: BRE от Октябрь 20, 2009, 15:53
Добрый день. Помогите пожалуйста. Компилятор выдает ошибку : error: switch quantity not an integer. Ошибка в третьей строке. Не могу понять в чем дело.
В качестве аргумента switch нельзя использовать объект класса QChar.



Название: Re: error: switch quantity not an integer
Отправлено: QtProger от Октябрь 20, 2009, 15:58
В качестве аргумента switch нельзя использовать объект класса QChar.

А что можно ?


Название: Re: error: switch quantity not an integer
Отправлено: BRE от Октябрь 20, 2009, 16:01
А что можно ?
error: switch quantity not an integer
и все что к нему приводиться.


Название: Re: error: switch quantity not an integer
Отправлено: QtProger от Октябрь 20, 2009, 16:12
и все что к нему приводиться.

Значит стандартные типы С++. Спасибо за помощь.

Я поправил, сделал вот так, вроде компилится:

Код
C++ (Qt)
void hexConverter::hexToBin(QDataStream* dataStream, QString str)
{
   charToNum(str[1].toAscii());
}
//---------------------------------------------------
uchar hexConverter::charToNum(char c)
{
   switch(c)
   {
       case '0': return 0;
       case '1': return 1;
       case '2': return 2;
       case '3': return 3;
       case '4': return 4;
       case '5': return 5;
       case '6': return 6;
       case '7': return 7;
       case '8': return 8;
       case '9': return 9;
       case 'A': return 10;
       case 'B': return 11;
       case 'C': return 12;
       case 'D': return 13;
       case 'E': return 14;
       case 'F': return 15;
   }
}