如何用Qt 5.7初始化stdout stdin



我注意到qDebug((QTextStrean和一般的stdin、stdout有一些问题,想问一下它实际上是如何工作的,看看这个:

这很管用

方法showmenu((使用QTextStream

showMenu(){
            QTextStream m_out(stdout);
            QTextStream m_in(stdin);
            m_out() << "Hey";
}

这行不通

.h

//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*&(">

我已包含cstio

可能是什么?

Pre-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};
};

相关内容

  • 没有找到相关文章

最新更新