Я пытался создать генератор случайных фраз, который читает существительные из одного текстового файла и глаголы из другого текстового файла. Это все сработало, но сейчас я пытаюсь написать метод, который использует заглавные буквы первой буквы темы, но продолжает получать ошибки
ошибка: C2248: «QByteArray :: operator QNoImplicitBoolCast»: не может получить доступ к закрытому члену, объявленному в классе «QByteArray»
см. объявление «QByteArray :: operator QNoImplicitBoolCast»
смотрите объявление ‘QByteArray’
Я выложу код для метода (извините, если он не в правильном формате, я новичок)
void MainWindow::returnCap(QString sub){
char *str;
QByteArray ba;
ba = sub.toLatin1();
str = ba.data();
QString firstLetter;
firstLetter = str[0];
QString cappedFirstLetter;
cappedFirstLetter = firstLetter.toUpper();
char flc; //firstLetterChar
flc = cappedFirstLetter.toLatin1();
str[0] = flc;
}
Спасибо за любую помощь!
Проблема в том, что вы присваиваете байтовый массив одному символу. Однако вам нужен только один символ из байтового массива:
char flc; //firstLetterChar
flc = cappedFirstLetter.toLatin1()[0];
ОБНОВИТЬ:
Я бы решил вашу проблему следующим образом:
QChar c1 = sub[0];
c1 = c1.toUpper();
sub.replace(0, 1, c1);
Вы вызываете функцию-член toLatin1
, который возвращает QByteArray
, Затем вы назначаете это QByteArray
возражать против char
переменная (не char*
, просто char
).