繁体   English   中英

如何使用Qt 5.7初始化stdout stdin

[英]How to initialize stdout stdin with Qt 5.7

我注意到qDebug()QTextStrean和通常的stdin,stdout想要询问其实际工作方式,请参见以下内容:

这项工作!

使用QTextStream的showmenu()方法

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 *&)'的调用

我包括了cstdio

会是什么呢?

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM