как инициализировать стандартный вывод stdin с помощью Qt 5.7

Я заметил кое-что с qDebug () QTextStrean и в общем stdin, stdout хочу спросить, как это работает на самом деле, посмотрите это:

ЭТО РАБОТАЕТ!

метод showmenu () используя QTextStream

showMenu(){
QTextStream m_out(stdout);
QTextStream m_in(stdin);

m_out() << "Hey";
}

ЭТО НЕ РАБОТАЕТ!

.час

//declaration

public:
QTextStream m_out;
QTextStream m_in;

.CPP

//method showMenu()

showMenu(){
m_out(stdout);
m_in(stdin);

m_out() << "Hey";
}

Я заметил, что у него есть проблема с перегрузкой, потому что также qDebug () использует stdout … я прав?

Выдает эту ошибку:

1> D: .. \ App_console.cpp (20,15): ошибка: не соответствует
вызов ‘(QTextStream) (_IO_FILE *&)»

Я включил cstdio

Ты хоть представляешь, что это может быть?

0

Решение

До C ++ 11, вам нужно будет сделать это в вашем Список инициализации конструктора.
В определении конструктора вашего класса, скажите MyStreamerВы можете инициализировать это так:

class MyStreamer{
....
public:
QTextStream m_out;
QTextStream m_in;
};

В вашем файле .cpp:

MyStreamer::MyStreamer(...) : m_out(stdout), m_in(stdin) {
....
}

В C ++ 11 и выше вы можете просто использовать равномерная инициализация:

class MyStreamer{
....
public:
QTextStream m_out{stdout};
QTextStream m_in{stdin};
};
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]