-1

このコードに問題がありました

 #define twobit(ch) ((toupper(ch)) == 'S' ? 0LL : \
                             (toupper(ch)) == 'M' ? 1LL : \
                             (toupper(ch)) == 'F' ? 2LL : 3LL)

 const QString pop("SWDGMKF");

    qDebug()<<twobit(pop[2]); //Erorr
4

1 に答える 1

1

QChar は Unicode 文字を表します。したがって、安全に char に変換することはできません。ASCII 文字または Latin1 文字のみが含まれていることがわかっている場合は、それぞれ toAscii() または toLatin1() を使用して変換できます。

可能であれば、char への変換は避け、QChar メソッドを使用します。つまり、 toupper () の代わりにQChar::toUpperを使用します:

ch.toUpper() == QLatin1Char('S') ? 0LL : \
  ...
于 2013-01-27T20:28:21.340 に答える