#include <stdio.h>
...................
QString message = "Привет мир !";
QTextStream stream(stdout);
#ifndef QT_NO_TEXTCODEC
stream.setCodec("csIBM866");
#endif
//записываем в консоль
stream << message << endl;
Большое спасибо! Работает! Только у меня работает, если добавить ещё: cout.flush(); (прим. с qDebug() - не работает, показано через пример)
C++ (Qt)
#include <QCoreApplication>
#include <QDebug>
#include <QTextCodec>
#include <QTextStream>
QTextStream cin(stdin);
QTextStream cout(stdout);
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QString message = "Привет мир !";
#ifndef QT_NO_TEXTCODEC
cout.setCodec("csIBM866");
#endif
//записываем в консоль
cout << message;
cout.flush();
return a.exec();
}
А вот с qDebug() - не работает:
Вывод: "╧ЁштхЄ ьшЁ !"
C++ (Qt)
#include <QCoreApplication>
#include <QDebug>
#include <QTextCodec>
#include <QTextStream>
QTextStream cin(stdin);
QTextStream cout(stdout);
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QString message = "Привет мир !";
#ifndef QT_NO_TEXTCODEC
cout.setCodec("csIBM866");
#endif
//записываем в консоль
qDebug() << message;
return a.exec();
}
Я вы вожу в std::cout, и у меня все работает
Большое спасибо! Да, через std::cout выводит. А вот через qDebug() - нет:
Вывод: ???? ??? !
C++ (Qt)
#include <QCoreApplication>
#include <QDebug>
#include <QTextCodec>
#include <QTextStream>
QTextStream cin(stdin);
QTextStream cout(stdout);
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QString string = "Привет мир !";
QTextCodec *codec = QTextCodec::codecForName("CP866");
QByteArray encodedString = codec->fromUnicode(string);
qDebug() << encodedString.data();
return a.exec();
}
А если ты хочешь выводить через QTextStream, то вот:
Работает! Вот только если я не добавлю cout.flush(), то у меня приложение виснит, а при закрытии падает (первый "Привет, Мир!" он std::cout'ом вывел):
Почему у Вас работает с cout.flush(), а у меня нет?
Вот вариант, который у меня тоже работает (с cout.flush()). А вот с qDebug() это не работает:
Вывод (qDebug): "╧ЁштхЄ ьшЁ !"
Вывод (cout << string;): Привет мир !
C++ (Qt)
#include <QCoreApplication>
#include <QDebug>
#include <QTextCodec>
#include <QTextStream>
QTextStream cin(stdin);
QTextStream cout(stdout);
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QString string = "Привет мир !";
QTextCodec *codec = QTextCodec::codecForName("CP866");
QByteArray encodedString = codec->fromUnicode(string);
std::cout << encodedString.data();
cout.setCodec(codec);
cout << string;
cout.flush();
qDebug() << string;
return a.exec();
}