• Как в qt-creator вывести в консольном приложении русский текст вместо кракозябр (см картинка)?

    dim0n-333
    @dim0n-333
    Студент-заочник, учусь, работаю
    Хм, 3 минуты гугла и первая ссылка выдали это:

    "Хотя уже давно разработан единый стандарт кодирования символов — Unicode, в Windows до сих пор используются несколько кодировочных таблиц, а именно — cp866, cp1251. Использование нескольких таблиц кодирования символов и является причиной появления козябликов, вместо кириллицы в консоли.

    Так уж повелось, в командной строке Windows кодировка символов соответствует стандарту cp866. То есть все символы в командной строке Windows закодированы по кодировочной таблице cp866. Причём поменять кодировку в командной строке Windows нельзя. Просмотреть стандарт кодирования символов в консоли можно, с помощью команды GRAFTABL

    Решить данную проблему можно только одним способом — перед тем, как передать текст в консоль, необходимо его перекодировать в стандарт кодирования символов cp866."

    и это:

    "Для ввода/вывода используйте текстовые потоки, для потока следует установить кодек, транслирующий текст в кодировку, применяемую в консоли. Поэтому для вашей системы имя кодека может быть и не "cp866". Приведенный ниже пример предполагает использование Qt 5, а кодировка исходного текста программы - UTF-8"

    #include <QCoreApplication>
    #include <QTextStream>
    #include <QTextCodec>
     
    int main(int argc, char *argv[])
    {
        QCoreApplication a(argc, argv);
     
        QTextStream outStream(stdout);
        outStream.setCodec(QTextCodec::codecForName("cp866"));
        outStream << QString("Русский текст в консоли") << flush;
     
        return a.exec();
    }


    P.S. Если по какой-то причине не используются Qt библиотеки, имеется другой вариант в этой статье.
    Ответ написан
  • Учебник по IDE QT Creator?

    dim0n-333
    @dim0n-333
    Студент-заочник, учусь, работаю
    Именно про Qt Creator книг не встречал, однако есть довольно много книг про сам Qt, причем обычно там используется Qt Creator.

    Здесь хорошая подборка. Правда, немного старовата, но можно поискать более новые издания, например у Шлее как минимум про Qt 5.10.

    P.S. В том же Шлее есть глава "Интегрированная среда разработки Qt Creator"
    Ответ написан