可以用Qt使用cin吗?

时间:2010-02-23 21:28:57

标签: c++ qt iostream cin

是否可以在Qt中使用cin?我可以使用cout,但找不到如何在Qt控制台应用程序中使用cin的示例。

4 个答案:

答案 0 :(得分:21)

我测试了Kaleb Pederson的答案,找到了比他提出的解决方案更简洁的方式(虽然我要感谢他指出我正确的方向):

QTextStream qtin(stdin); 
QString line = qtin.readLine();  // This is how you read the entire line

QString word;
qtin >> word;    // This is how you read a word (separated by space) at a time.

换句话说,你并不真的需要QFile作为你的中间人。

答案 1 :(得分:8)

是的,它可以并且按预期工作,尽管你可以做一些事情,比如使用线程,这可能会导致这种方法出现问题。

但是,我建议使用更加惯用(Qt)的方式从stdin中读取:

QString yourText;
QFile file;
file.open(stdin, QIODevice::ReadOnly);
QTextStream qtin(&file);
qtin >> yourText;

答案 2 :(得分:2)

我刚用QtCreator尝试了以下代码,它似乎正在运行:

#include <QtCore/QCoreApplication>
#include <iostream>
using namespace std;

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    cout << endl << "hello" << endl;
    int nb;
    cout << "Enter a number " << endl;
    cin>>nb;
    cout << "Your number is "<< nb<< endl;

    return a.exec();

}

希望它有所帮助!

答案 3 :(得分:0)

我是 QT 6 的新手,我确实尝试像您一样制作简单的程序。 使用 C++ 读取名称和打印 Hello + 名称。起初我的程序没有工作,直到我将项目设置更改为在终端中运行。

  1. 项目。
  2. 跑。
  3. 在终端中运行。

enter image description here

然后我再次运行我的代码并且成功了。

我的代码:

    #include <QCoreApplication>
    #include <iostream>
    #include <string>

   int main(int argc, char *argv[])
    {
        QCoreApplication a(argc, argv);
 
        std::string name;

        std::cout << "please enter your name : " ;
        std::cin >> name;
        std::cout << std::endl << "Hello " << name;
 

        return a.exec();
    }


在我更改设置之前,按 ENTER 后 qt 没有读取我的输入。